/* 序列化key对应的value,如果key不存在则返回false
* @param key
* @return 序列化后的val或者false
*/
$redis->set('key_1','value_1');
$redis->dump('key_1'); /* 反序列化key对应的value
* @param key
* @param int ttl ,可以为0,不设置ttl
* @param val 已通过dump反序列的值
* @return 成功返回1
*/
$redis->set('foo', 'bar');
$val = $redis->dump('foo');
$redis->restore('bar', 0, $val); // key(bar) - val(bar) 返回1 /* 将一个key移到不同的redis实例中
* @param string host redis实例ip
* @param int port redis实例端口
* @param string key 移动的key
* @param int db_index 要移到redis实例数据库索引
* @param int timeout 最大移动时间
* @param bool copy 是否复制
* @param flag replace 是否替换
*/
$redis->migrate('backup', 6379, 'foo', 0, 3600);
$redis->migrate('backup', 6379, 'foo', 0, 3600, true, true); /* copy and replace */
$redis->migrate('backup', 6379, 'foo', 0, 3600, false, true); /* just REPLACE flag */ /* 向哈希表h添加key-value
* @param key 哈希表名称
* @param hashkey key
* @param value value
* @return bool/int 如果value不存在,插入成功返回1,如果value已经存在,则代替,然后返回0,出错返回false
*/
$redis->delete('h')
$redis->hSet('h', 'key1', 'hello'); /* 1, 'key1' => 'hello' in the hash at "h" */
$redis->hGet('h', 'key1'); /* returns "hello" */ $redis->hSet('h', 'key1', 'plop'); /* 0, value was replaced. */
$redis->hGet('h', 'key1'); /* returns "plop" */ /* 当key不存在的时候,向哈希表h插入key-value
* @param key
* @param hashkey
* @param value value
* @return bool 成功返回true,失败返回false
*/
$redis->delete('h')
$redis->hSetNx('h', 'key1', 'hello'); /* TRUE, 'key1' => 'hello' in the hash at "h" */
$redis->hSetNx('h', 'key1', 'world'); /* FALSE, 'key1' => 'hello' in the hash at "h". No change since the field wasn't replaced. */ /* 获取哈希表中key的value
* @param string 哈希表
* @param string hashkey key
* @return string value
*/
$redis->delete('h');
$redis->hSet('h','h_key_1','h_val_1');
$redis->hGet('h','h_key_1'); // echo h_val_1 /* 返回哈希表的key-value对数
* @param hash_table 哈希表
* @return long 返回key-value键值对数量
*/
$redis->delete('h')
$redis->hSet('h', 'key1', 'hello');
$redis->hSet('h', 'key2', 'plop');
$redis->hLen('h'); /* returns 2 */ /* 充哈希表中删除key-value
* @param string hash_table
* @param string key
* @return bool value
*/
$redis->delete('h');
$redis->hSet('h','h_key_1','h_val_1');
$redis->hDel('h','h_key_1'); /* 返回哈希表中key,就像array_keys()
* @param hash_table
* @return array key的数组
*/
$redis->delete('h');
$redis->hSet('h', 'a', 'x');
$redis->hSet('h', 'b', 'y');
$redis->hSet('h', 'c', 'z');
$redis->hSet('h', 'd', 't');
var_dump($redis->hKeys('h')); /* 返回哈希表中val
* @param string hash_table
* @return array value的数组
*/
$redis->delete('h');
$redis->hSet('h', 'a', 'x');
$redis->hSet('h', 'b', 'y');
$redis->hSet('h', 'c', 'z');
$redis->hSet('h', 'd', 't');
var_dump($redis->hVals('h')); /* 把整个hash表当做php数组返回
* @param string hash_table
* @return array key-value数组
*/
$redis->delete('h');
$redis->hSet('h', 'a', 'x');
$redis->hSet('h', 'b', 'y');
$redis->hSet('h', 'c', 'z');
$redis->hSet('h', 'd', 't');
var_dump($redis->hGetAll('h')); /* 判断key是否存在哈希表中
* @param string hash_table
* @return bool 存在返回true,否则返回false
*/
$redis->hSet('h', 'a', 'x');
$redis->hExists('h', 'a'); /* TRUE */
$redis->hExists('h', 'NonExistingKey'); /* FALSE */ /* 增加member值到指定的key中
* @param string hash_table
* @param string key
* @param int value 要增加的值
*/
$redis->delete('h');
$redis->hIncrBy('h', 'x', 2); /* returns 2: h[x] = 2 now. */
$redis->hIncrBy('h', 'x', 1); /* h[x] ← 2 + 1. Returns 3 */ /* 增加member值到指定的key中
* @param string hash_table
* @param string key
* @param float value 要增加的值
*/
$redis->delete('h');
$redis->hIncrByFloat('h','x', 1.5); /* returns 1.5: h[x] = 1.5 now */
$redis->hIncrByFLoat('h', 'x', 1.5); /* returns 3.0: h[x] = 3.0 now */
$redis->hIncrByFloat('h', 'x', -3.0); /* returns 0.0: h[x] = 0.0 now */ /* 一次设置多个key-value到哈希表中
* @param string hash_table
* @param key-value 数组
* @return bool
*/
$redis->delete('user:1');
$redis->hMset('user:1', array('name' => 'Joe', 'salary' => 2000)); /* 从哈希表中获取多个key-value
* @param string 哈希表
* @param key-array
* @return value-array
*/
$redis->delete('h');
$redis->hSet('h', 'field1', 'value1');
$redis->hSet('h', 'field2', 'value2');
$redis->hmGet('h', array('field1', 'field2')); /* returns array('field1' => 'value1', 'field2' => 'value2') */ /* 遍历哈希表
* @param string hash_table
* @param pattern
*/
$it = NULL;
$redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY);
while($arr_keys = $redis->hscan('hash', $it)) {
foreach($arr_keys as $str_field => $str_value) {
echo "$str_field => $str_value\n";
}
} /* 阻塞版本,弹出列表的最新元素,如果列表都为空,则等到有元素进入或者超时才返回
* @param array(list1,list2,...) or list1,list2,list3,,,
* @param int timeout 设置超时时间
* @return array array(listname,value) 列表key和头部元素值
*/
$redis->lpush('list1','list_val_1');
$redis->lpush('list1','list_val_2');
$redis->lpush('list1','list_val_3');
$redis->delete('list2');
$redis->blpop('list1',10); //array('list1','list_val_3')
$redis->blpop('list1','list2',10); //array('list1','list_val_2')
$redis->blpop('list3',10); //超时返回空数组array() /* 功能查考blpop,但是brpop是弹出列表的最早元素
* @param array(list1,list2,...) or list1,list2,list3,,,
* @param int timeout 设置超时时间,单位为秒
* @return array array(listname,value) 列表key和头部元素值,不存在返回空数组
*/
$redis->lpush('list1','list_val_1');
$redis->lpush('list1','list_val_2');
$redis->lpush('list1','list_val_3');
$redis->lpush('list1','list_val_4');
$redis->delete('list2');
$redis->brpop('list1',10); //array('list1','list_val_1')
$redis->brpop('list1','list2',10); //array('list1','list_val_2')
$redis->brpop('list3',10); //array() /* 从srckey列表中弹出尾部元素,并把改元素压入dstkey列表中,返回改元素值
* @param key srckey 弹出元素列表
* @param key dstkey 压入元素列表
* @return string 返回改元素值或者false
*/
$redis->delete('x', 'y');
$redis->lPush('x', 'abc');
$redis->lPush('x', 'def');
$redis->lPush('y', '123');
$redis->lPush('y', '456');
$redis->rpoplpush('x', 'y'); //abc
$redis->lRange('x', 0, -1); //array('def')
$redis->lRange('y', 0, -1); //array('abc','456','123') /* 阻塞版本rpoplpush,详情参考rpoplpush
* @param key srckey 弹出元素列表
* @param key dstkey 压入元素列表
* @param int timeout 超时时间
* @return string 返回改元素值或者false
*/
$redis->delete('x', 'y');
$redis->lPush('x', 'abc');
$redis->lPush('x', 'def');
$redis->lPush('y', '123');
$redis->lPush('y', '456');
$redis->brpoplpush('x', 'y',10); //abc
$redis->lRange('x', 0, -1); //array('def')
$redis->lRange('y', 0, -1); //array('abc','456','123') /* 获取列表中对应index下标的元素值,IIndex函数一样
* @key list 列表名
* @index int 下标,如果为负数,这是倒数第index个元素
* @return string/bool 成功返回val,失败返回false,包括越界
*/
$redis->rPush('key1', 'A');
$redis->rPush('key1', 'B');
$redis->rPush('key1', 'C'); /* key1 => [ 'A', 'B', 'C' ] */
$redis->lGet('key1', 0); /* 'A' */
$redis->lGet('key1', -1); /* 'C' */
$redis->lGet('key1', 10); /* `FALSE` */ /* 插入元素,如果列表不存在这不插入
* @param key 列表key
* @param position Redis::BEFORE/Redis::AFTER
* @param 相对位置的值value,在该值之前或之后
* @param value 待插入的值
*/
$redis->delete('key1');
$redis->lInsert('key1', Redis::AFTER, 'A', 'X'); /* 0 */
$redis->lPush('key1', 'A');
$redis->lPush('key1', 'B');
$redis->lPush('key1', 'C');
$redis->lInsert('key1', Redis::BEFORE, 'C', 'X'); /* 4 */
$redis->lRange('key1', 0, -1); /* array('A', 'B', 'X', 'C') */
$redis->lInsert('key1', Redis::AFTER, 'C', 'Y'); /* 5 */
$redis->lRange('key1', 0, -1); /* array('A', 'B', 'X', 'C', 'Y') */
$redis->lInsert('key1', Redis::AFTER, 'W', 'value'); /* -1 */ /* 弹出列表头元素
* @param 列表
* @return string/bool 返回头元素或者false
*/
$redis->rPush('key1', 'A');
$redis->rPush('key1', 'B');
$redis->rPush('key1', 'C'); /* key1 => [ 'A', 'B', 'C' ] */
$redis->lPop('key1'); /* key1 => [ 'B', 'C' ] */ /* 压入元素到列表尾部,列表如果不存在则创建列表插入
* @param key 列表key
* @param string 元素
* @param long/bool 成功返回列表新长度,失败返回false
*/
$redis->delete('key1');
$redis->lPush('key1', 'C'); // returns 1
$redis->lPush('key1', 'B'); // returns 2
$redis->lPush('key1', 'A'); // returns 3
/* key1 now points to the following list: [ 'A', 'B', 'C' ] */ /* 参考lpush,如果列表不存在,则不操作
* @param key 列表key
* @param string 元素
* @param long/bool 成功返回列表新长度,失败返回false
*/
$redis->delete('key1');
$redis->lPushx('key1', 'A'); // returns 0
$redis->lPush('key1', 'A'); // returns 1
$redis->lPushx('key1', 'B'); // returns 2
$redis->lPushx('key1', 'C'); // returns 3
/* key1 now points to the following list: [ 'A', 'B', 'C' ] */ /* 获取列表指定范围元素,lGetRange别名
* @param list 列表key
* @param int start_index
* @param int end_index
* @return array
*/
$redis->rPush('key1', 'A');
$redis->rPush('key1', 'B');
$redis->rPush('key1', 'C');
$redis->lRange('key1', 0, -1); /* array('A', 'B', 'C') 第一个到倒数第一个元素 */ /* 移除第一个值为value的元素,如果count为0,则全部移除值为value的元素
* 如果值为正数,则从头到尾移除count个,如果值为负数,则从尾部到头部移除count个
* 别名: lRemove
* @param key 列表
* @param value 值
* @param count 个数
* @return long/bool 成功返回移除个数,失败返回false
*/
$redis->lPush('key1', 'A');
$redis->lPush('key1', 'B');
$redis->lPush('key1', 'C');
$redis->lPush('key1', 'A');
$redis->lPush('key1', 'A');
$redis->lRange('key1', 0, -1); /* array('A', 'A', 'C', 'B', 'A') */
$redis->lRem('key1', 'A', 2); /* 2 */
$redis->lRange('key1', 0, -1); /* array('C', 'B', 'A') */ /* 设置列表index下标的值
* @param string key
* @param int index下标
* @param string value
* @return bool 成功返回true,失败返回false
*/
$redis->rPush('key1', 'A');
$redis->rPush('key1', 'B');
$redis->rPush('key1', 'C'); /* key1 => [ 'A', 'B', 'C' ] */
$redis->lGet('key1', 0); /* 'A' */
$redis->lSet('key1', 0, 'X');
$redis->lGet('key1', 0); /* 'X' */ /* 剪裁列表,不在范围中元素会被删除
* @param string list
* @param int start_index
* @param int stop_index
* @param array/bool 如果失败返回false
*/
$redis->rPush('key1', 'A');
$redis->rPush('key1', 'B');
$redis->rPush('key1', 'C');
$redis->lRange('key1', 0, -1); /* array('A', 'B', 'C') */
$redis->lTrim('key1', 0, 1);
$redis->lRange('key1', 0, -1); /* array('A', 'B') */ /* 返回和移除列表中最新的元素
* @param string list
* @return string/bool 成功返回元素val,失败返回false
*/
$redis->rPush('key1', 'A');
$redis->rPush('key1', 'B');
$redis->rPush('key1', 'C'); /* key1 => [ 'A', 'B', 'C' ] */
$redis->rPop('key1'); /* key1 => [ 'A', 'B' ] */ /* 添加一个string元素到列表尾部,如果列表不存在,则创建列表
* 如果添加到的容器不是列表,则返回false
* @param string list
* @param string value
* @return int/bool 成功返回列表新长度,失败返回false
*/
$redis->delete('key1');
$redis->rPush('key1', 'A'); // returns 1
$redis->rPush('key1', 'B'); // returns 2
$redis->rPush('key1', 'C'); // returns 3
/* key1 now points to the following list: [ 'A', 'B', 'C' ] */ /* 参考rPush,如果列表不存在,则不创建, rPushx
* @param string list
* @param string value
* @return int/bool 成功返回列表新长度,失败返回false
*/
$redis->delete('key1');
$redis->rPushx('key1', 'A'); // returns 0
$redis->rPush('key1', 'A'); // returns 1
$redis->rPushx('key1', 'B'); // returns 2
$redis->rPushx('key1', 'C'); // returns 3
/* key1 now points to the following list: [ 'A', 'B', 'C' ] */ /* 获取列表长度
* @param string list
* @return int 返回列表长度
*/
$redis->rPush('key1', 'A');
$redis->rPush('key1', 'B');
$redis->rPush('key1', 'C'); /* key1 => [ 'A', 'B', 'C' ] */
$redis->lSize('key1'); /* 3 */
$redis->rPop('key1');
$redis->lSize('key1'); /* 2 */

PHP-Redis扩展使用手册(三)的更多相关文章

  1. WinDbg 命令三部曲:(三)WinDbg SOSEX 扩展命令手册

    本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 系列博文 <WinDbg 命令三部曲:(一)WinDbg 命令手册> <WinDb ...

  2. linux学习(三) -- lnmp环境切换php版本,并安装相应redis扩展

    原创文章,转载请注明出处   我想配置的环境是ubuntu+nginx+mysql+php+redis,其中php装两个版本,php7和php56 ubuntu+nginx+mysql+php的环境配 ...

  3. redis/php redis扩展 安装

    作者:silenceper 日期:2013-10-03 原文地址: http://silenceper.com/archives/952.html 我是在CentOS 6.3 中进行的. 使用到的软件 ...

  4. windows下与linux下安装redis及redis扩展

    1.        Redis的介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起 ...

  5. redis 扩展安装使用

    Redis的php客户端库非常之多, Redis推荐客户端链接是:http://redis.io/clients 推荐用phpredis,下载地址:https://github.com/nicolas ...

  6. mac机上搭建php56/nginx 1.8.x/thinkphp 3.2.x/gearman扩展/seaslog扩展/redis扩展环境

    php的各种扩展配置起来实在不容易,记录一下备忘: 一.php56 安装 虽然php7出来了,但是没用过,不知道有没有坑,这里仍然使用php5.6版本 1.1 安装php/php-pfm brew u ...

  7. windows下安装php5.5的redis扩展

    windows下开发用的xampp集成的环境,想装个php-redis扩展,扩展的github地址:  https://github.com/nicolasff/phpredis php_redis. ...

  8. linux php redis扩展的安装和redis服务的安装

    一.php redis扩展的安装 wget http://pecl.php.net/get/redis-2.2.7.tgztar zvxf redis-2.2.7.tgzcd redis-2.2.7/ ...

  9. WinDbg 命令三部曲:(二)WinDbg SOS 扩展命令手册

    本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 系列博文 <WinDbg 命令三部曲:(一)WinDbg 命令手册> <WinDb ...

  10. Redis常用命令手册:服务器相关命令

    Redis提供了丰富的命令(command)对数据库和各种数据类型进行操作,这些command可以在Linux终端使用.在编程时,比如各类语言包,这些命令都有对应的方法.下面将Redis提供的命令做一 ...

随机推荐

  1. Unity unsafe

    http://answers.unity3d.com/questions/23307/is-it-impossible-to-use-the-code-with-keyword-unsa.html 可 ...

  2. web在线打印,打印阅览,打印维护,打印设计

    winform打印的方案比较多,实现也比较容易,而且效果也非常炫:但现在越来越多的系统是web系统,甚至是移动端.网上也有非常的web打印方案,但各式各样的问题非常多,比如js兼容性,稳定性等一直缠绕 ...

  3. jsp动作元素之forward指令

    forward指令用于将页面响应转发到另外的页面.既可以转发到静态的HTML页面,也可以转发到动态的JSP页面,或者转发到容器中的Servlet. forward指令格式如下: <jsp:for ...

  4. Test Regular Expressions Online with RegExr免费的正则表达式检验网站

    免费的正则表达式检验网站: http://www.regexr.com

  5. can't debug windows service in win7 64bit

    if encount below error: Solution: run the command “vsdiag_regwcf.exe -i” as admin in C:\Program File ...

  6. PhpStorm 9.03 集成 开源中国(oschina.net)的Git项目,提交SVN时注意事项

    第一步:配置 git.exe File -> Default Settings -> Version Control -> Git -> Path go Git executa ...

  7. 个性化设置phpMyAdmin,去掉“以树形显示数据库”,禁用“发送错误报告”

    个性化设置phpMyAdmin 在使用phpMyAdmin 3.5.8.2时,发现: 如果数据库有相同的前缀,左边数据库导航会把前缀合并,即所谓的“以树形显示数据库”,真的有点不习惯,如下图所示: 不 ...

  8. jquery解析php通过ajax传过来的json二维数组对象

    ajax获得php传过来的json二维数组对象,jquery解析 php代码: <?php $news = array( '武汉'=>array(1,2,3), '广州'=>arra ...

  9. javascript数据结构-队列

    gihub博客地址 队列(Queue)是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表.进行插 ...

  10. Android--UI之Spinner

    前言 最近一直在讲AndroidUI的开发,今天讲一下Spinner控件,这是一个列表选择框,可以弹出一个列表供用户选择.在本片博客中,会讲解Spinner的基本属性以及设置之后的效果,以及使用Sim ...