PHP-Redis扩展使用手册,一

    //初始化redis实例
        $redis = new Redis();
        
        /* connect 、 open 链接redis
         * @param string host redis服务器地址
         * @param int port 链接端口 可选
         * @param float timeout 链接超时时间,可选,默认为0无限制
         * @param NULL reserved 如果retry_interval有值,reserved应该为NULL
         * @param int intry_interval 相隔intry_interval后尝试重新连接 可选
         * @return bool 成功返回true,失败返回false
         */
        $redis->connect($redis_host,$redis_port);
        
        /* 连接到一个redis实例或重用的连接已经建立
         * @param string host redis服务器地址
         * @param int port 链接端口 可选
         * @param float timeout 链接超时时间,可选,默认为0无限制
         * @param NULL reserved 如果retry_interval有值,reserved应该为NULL
         * @param int intry_interval 相隔intry_interval后尝试重新连接 可选
         * @return bool 成功返回true,失败返回false
         */
        $redis->pconnect($redis_host,$redis_port);
        
        /* 使用密码验证连接是否合法,警告:密码在网络中使用明文传输
         * @param string password 密码
         * @return bool 合法返回true,否则返回false
         */
        $redis->auth('password');
        
        /* 改变当前连接中已经选择的数据库,默认当前数据库下标为0,数据库16个
         * @param index INTEGER 数据库下标
         * @return bool 成功返回true,失败返回false
         */
         $redis->select(1);
         
        /* 在当前redis实例中关闭除了使用pconnect建立的链接 */
        $redis->close();
        
        /* 设置客户端配置
         * @param name 配置名称
         * @param value 配置值
         * @return bool 成功返回true,失败返回false
         */
        $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE); 
        
        /* 获取客户端配置
         * @param name 配置名称 
         * @return value 配置值
         */
        $redis->getOption(Redis::OPT_SERIALIZER);
        
        /* 检查当前链接状态
         * @return value 成功返回"+PONG",否则抛出RedisException异常
         */
        $redis->ping();
        
        /* 发送一段字符串到redis服务,然后返回相同字符串
         * @param string message 发送字符串
         * @return string 返回消息
         */
        $redis->echo('echo_msg');
        
        /* 开始在后台重写AOF(AppendOnly FILE),数据库持久化
         * @return bool 成功返回true,失败返回false
         */
        $redis->bgrewriteaof();
        
        /* 将数据异步保存到硬盘中
         * @return bool 成功返回true,失败返回false,如果保存已经在运行,则返回false
         */
        $redis->bgsave();
        
        /* 获取或者设置redis服务器配置参数
         * @param string operation “GET” 或者 “SET”
         * @param string key 获取或者设置的key
         * @param string value 获取或者设置的value
         * @return 如果是set,则返回bool,如果是get,则返回value
         */
        $redis->config("GET","*max-*-entries");
        $redis->config("SET","dir","/var/run/redis/dumps/");
        
        /* 返回当前数据库key的数量
         * @return int 数据库key的数量
         */
        $redis->dbsize();
        
        /* 移除所有数据库中所有的key
         * @return bool true 总是返回true
         */
        $redis->flushAll();
        
        /* 移除所有key从当前数据库中
         * @return value true 总是返回true
         */
        $redis->flushDB();
        
        /* 获取关于服务器信息和统计,
         * 无参数是 返回:
         * redis_version redis版本信息
         * arch_bits 框架(x86/x64)
         * uptime_in_seconds redis运行的秒数
         * uptime_in_days redis运行的天数
         * connected_clients 客户端链接数
         * connected_slaves 从服务器链接数
         * used_memory 已使用内存大小
         * changes_since_last_save  距离最近一次成功创建持久化文件之后,经过了多少秒
         * bgsave_in_progress  一个标志值,记录了服务器是否正在创建 RDB 文件
         * last_save_time  最近一次成功创建 RDB 文件的 UNIX 时间戳
         * total_connections_received  服务器已接受的连接请求数量
         * total_commands_processed   服务器已执行的命令数量
         * role   如果当前服务器没有在复制任何其他服务器,那么这个域的值就是 master ;否则的话,这个域的值就是 slave 。注意,在创建复制链的时候,一个从服务器也可能是另一个服务器的主服务器。
         * 如果存在参数,则获取参数对应部分数据,详细参照:http://redisdoc.com/server/info.html
         * @param string 获取那部分数据
         * @return assoc_array 关于服务器的消息或统计
         */
        $redis->info();                              /* standard redis INFO command */
        $redis->info("COMMANDSTATS");        /* Information on the commands that have been run (>=2.6 only)*/
        $redis->info("CPU");                 /* just CPU information from Redis INFO */
        
        /* 返回上次保存数据到硬盘的时间戳
         * @return int 时间戳
         */
        $redis->lastSave();
        
        /* 重置info()函数返回的那些信息
         * @return bool 成功返回true,失败返回false
         */
        $redis->resetStat();
        
        /* 服务器异步保存数据到硬盘,等待操作完成
         * @return bool 成功返回true,失败返回false,如果保存已经在运行,则返回false
         */
        $redis->save();
        
        /* 改变从服务器
         * 可填 host(string)、port(int)或者不填
         * @return bool 成功返回true,失败返回false
         */
        $redis->slaveof('10.0.1.7', 6379);
        $redis->slaveof();
        
        /* 返回服务器时间
         * @return assoc_array 时间戳和微秒数
         */
        $redis->time();
        
        /* 访问redis慢日记 
         * @param string operation “GET”,“LEN”,“RESET”
         * @return “GET“返回特定数目的慢查询,”RESET“重置慢查询,”LEN“返回慢查询条目数
         */
        $redis->slowlog('get', 10); 
        $redis->slowlog('get');
        $redis->slowlog('reset');
        
        /* 通过key获取对应的value
         * @param string or bool 
         * @return string or bool 如果key不存在,返回false,否则返回value
         */
        $redis->get('key');
        
        /* 设置key-value 
         * @param key 
         * @param value 
         * @param timeout or option_array,过时时间或者选项数组,如果参数为整数,则调用SETEX,如果传一个数组,且redis 大于 2.6.12,则作为扩展选项数组
         * @return bool 如果命令成功,返回true
         */
        $redis->set('key', 'value');
        $redis->set('key','value', 10);
        // Will set the key, if it doesn't exist, with a ttl of 10 seconds
        $redis->set('key', 'value', Array('nx', 'ex'=>10));
        // Will set a key, if it does exist, with a ttl of 1000 miliseconds
        $redis->set('key', 'value', Array('xx', 'px'=>1000));
        
        /* 设置key-value和 改key的ttl(生存时间)
         * @param string key
         * @param int ttl 单位为分钟
         * @param string value 
         * @return bool 成功返回true 
         */
        $redis->setex('key', 3600, 'value'); // sets key → value, with 1h TTL.
        
        /* 设置key-value和 改key的ttl(生存时间)
         * @param string key
         * @param int ttl 单位为毫秒
         * @param string value 
         * @return bool 成功返回true 
         */
        $redis->psetex('key', 100, 'value'); // sets key → value, with 0.1 sec TTL.
        
        /* 当key不存在,插入value,否则不操作
         * @param key 
         * @param value 
         * @return bool 成功返回true,失败返回false,如果存在key也返回false
         */
        $redis->setnx('key', 'value');
        
        
        /* 移除key
         * @param key_array
         * @return int 删除key的个数
         */
        $redis->set('key1', 'val1');
        $redis->set('key2', 'val2');
        $redis->set('key3', 'val3');
        $redis->set('key4', 'val4');
        $redis->delete(array('key3', 'key4')); //return 2
        
        /* 判断key是否存在
         * @param key 
         * @return bool 存在返回true,否则返回false 
         */
        $redis->exists('key');
        
        /* 使key对应的value自增1
         * @param key 
         * @return 一个新value
         */
         $redis->incr('key1');
         
         /* 使key对应的value增value
          * @param key 
          * @param int value 增量 
          * @return 一个新value
          */
        $redis->incrBy('key1',10);
        
        /* 使key对应的value增value 
         * @param key 
         * @param float value 增量 
         * @return 一个新value
         */
        $redis->incrByFloat('key1',1.3);
        
        /* 使key对应的value自减1
         * @param key 
         * @return 一个新value
         */
         $redis->decr('key1');
        
        /* 使key对应的value减value
         * @param key 
         * @param int value 
         * @return 一个新value
         */
        $redis->decrBy('key1',10);