redis队列例子详解

测试的时候我用的是Win环境,目前Redis官方是没有Redis环境安装包下载,但是庆幸的是微软有团队在维护Redis WinX64环境的版本,下面是下载网址:

Redis Windows环境下载:
https://github.com/MSOpenTech/redis/releases

下载直接执行redis-server.exe即可

还需要PHP-redis.dll的插件,下载复制到ext目录下,并且在php.ini增加一行:

extension=php_redis.dll

使用的代码非常简单,以下是一个简单的使用类,如果实用在正式环境中,可能要需要进行优化:

class RedisEx{

private $_redis = null;
private $_host = “127.0.0.1”;
private $_prot = 6379;

function __construct(){
self::_connect();
}

public function push($key,$val){
self::_connect();

if($key&&$val){
return $this->_redis->lPush($key,$val);
}
return null;
}

public function pop($key) {
self::_connect();

return $this->_redis->rPop($key);
}

private function _connect(){
if(!$this->_redis){
$this->_redis = new Redis();
$this->_redis->connect($this->_host,$this->_prot);
}
}
}

 

有了处理类,那么我们需要写一个操作代码:

<?php
/**
* http://test.com/1.php?a=POST&key=key1&val=a0000001//加入队列
* http://test.com/1.php?a=GET&key=key1//取出队列
* @var unknown
*/
$action = $_GET[‘a’];

$redisEx = new RedisEx();

if(strtoupper($action) == ‘POST’){
$key = $_GET[‘key’];
$val = $_GET[‘val’];

$res = $redisEx->push($key, $val);

echo $res;

}elseif (strtoupper($action) == ‘GET’){

$key = $_GET[‘key’];

$res = $redisEx->pop($key);

echo $res;
}

echo ‘succ';

 

php-redis中文参考手册

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 命令的操作