redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
JS对cookies、localStorage、sessionStorage三种数据操作例子
JS对cookies、localStorage、sessionStorage三种数据操作例子;
<script type="application/x-javascript"> function c(str) { console.log(str); } var doc = document; var button = document.getElementById("button"); button.addEventListener("click",function(){ test1(); test2(); test3(); },false) function test1(){ cookieUtils.set("name","a001"); cookieUtils.set("pwd","123456"); cookieUtils.set("age","23"); c(cookieUtils.get("pwd")); // c(cookieUtils.del("pwd")); c(doc.cookie); } function test2(){ sessionStorageUtils.set("name","a001"); sessionStorageUtils.set("pwd","123456"); sessionStorageUtils.set("age","23"); c(sessionStorageUtils.get("name")) c(sessionStorageUtils.get("pwd")) c(sessionStorageUtils.get("age")) //c(sessionStorageUtils.del("age")) c(sessionStorageUtils.get("age")) } function test3(){ localStorageUtils.set("name","a001"); localStorageUtils.set("pwd","123456"); localStorageUtils.set("age","23"); c(localStorageUtils.get("name")) c(localStorageUtils.get("pwd")) c(localStorageUtils.get("age")) //c(localStorageUtils.del("age")) c(localStorageUtils.get("age")) } var cookieUtils = { set:function(name,value,expires,path,domain,secure){ if(name.length <= 0){ alert("至少需要指定一个名字"); return false; } var cookieText = encodeURIComponent(name) + "=" + encodeURIComponent(value); if(expires instanceof Date){ cookieText += "; expires=" + expires.toUTCString(); } if(path){ cookieText += "; path="+path; } if(domain){ cookieText +="; domain="+domain; } if(secure){ cookieText +="; "+secure; } document.cookie = cookieText; return true; }, get:function(name){ var cookieText = encodeURIComponent(name) + "="; var cookieValue = ""; var start = document.cookie.indexOf(cookieText); if(start > -1){ var end = document.cookie.indexOf(";",start); if(end == -1){ end = document.cookie.length; } cookieValue = encodeURIComponent(document.cookie.substring(start + cookieText.length,end)); } return cookieValue; }, del:function(name){ this.set(name,"",new Date(0)); } } var sessionStorageUtils = { set:function(name,value){ if(name.length <= 0){ alert("至少需要指定一个名字"); return false; } sessionStorage.setItem(name,value); return true; }, get:function(name){ return sessionStorage.getItem(name); }, del:function(name){ sessionStorage.removeItem(name); return true; } } var localStorageUtils = { set:function(name,value){ if(name.length <= 0){ alert("至少需要指定一个名字"); return false; } localStorage.setItem(name,value); return true; }, get:function(name){ return localStorage.getItem(name); }, del:function(name){ localStorage.removeItem(name); return true; } } </script>
把数值格式化成大写人民币的PHP跟js代码
JS代码:
function c(str) {
console.log(str);
}
function format_price($money){
var cny = parseFloat($money).toFixed(2);
var _num = [“0″,”壹”,”贰”,”叁”,”肆”,”伍”,”陆”,”柒”,”捌”,”玖”];
var _unit = [“圆”,”整”,”角”,”分”];
var _unit2 = [“”,”拾”,”佰”,”仟”];
var _unit3 = [“”,”万”,”亿”,”万”,”亿”];
Git 基本操作
一、安装环境
CentOS: yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
Debian: apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
二、安装Git
CentOS: yum install git-core
Debian: apt-get install git-core
三、创建基础仓库
mkdir /git/test
cd /git/test
git init –bare –shared //初始化基础仓库
四、客户端操作
git clone root@192.168.1.199:/git/test //克隆仓库
然后复制文件到 test 目录
git add * //添加所有文件
git commit -m “初始化版本”
git push //推送到服务器上
五、其他
git add [*|file] //将该文件添加到缓存
git log [–oneline] //使用 git clone 拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。
git diff [file name][–cached] //执行 git diff 来查看执行 git status 的结果的详细信息。
git clone [url] //使用 git clone 拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。
git init //用 git init 在目录中创建新的 Git 仓库。 你可以在任何时候、任何目录中这么做,完全是本地化的。
git status //查看在你上次提交之后是否有修改。
git commit [-am] //将缓存区内容添加到仓库中。
git reset HEAD //用于取消已缓存的内容。
git rm [filename] //会将条目从缓存区中移除
git mv [filename] //命令做得所有事情就是 git rm –cached 命令的操作
nginx网站被持续攻击最终防攻策略
上上个月架构全部迁移上云以后,总的来说比较稳定,业务量也上来,可爱的坏人也来了,7X24小时不停恶意攻击我的网站,第一次收到报警是网站流入流量1分钟以内连续3次超过1000000bps,换算下1M/s秒,平时没那么大流量的啊,当时刚好在朋友家玩,于赶紧开本本连vpn检查,发现全是访问同一个页面的请求,而且是正常访问http 200,应该是被恶意攻击了。
发现问题:
发现问题第一反应,赶紧将请求地址截图发给开发们看看,问问这个具体是什么?
最后得知是为短信验证码接口,据后来统计在被持续攻击的一个多小时中损失16000多条短信。
近期评论