PHP操作Redis LIST ,SET, HASH 的相关命令 (一)

1.PHP操作Redis之List

1、lPush()/rPush()
  1. lPush()的语法格式是:$redis->lPush(key, value),作用是将value添加到链表key的左边(头部)。  
  2. rPush()的语法格式是:$redis->rPush(key, value),作用是将value添加到链表key的右边(尾部)。  
2、lPushx()/rPushx()
  1. lPushx 将值value插入到列表key的表头,当且仅当key存在并且是一个列表。  
  2. rPushx 将值value插入到列表key的表尾,当且仅当key存在并且是一个列表。  
3、lPop()/rPop()
  1. lPop()的语法格式是:$redis->lPop(key),作用是将链表key的左边(头部)元素删除。  
  2. rPop()的语法格式是:$redis->rPop(key),作用是将链表key的右边(尾部)元素删除。  
4、lSize()
  1. lSize()的语法格式是:$redis->lSize(key),作用是返回链表key中有多少个元素。  
5、lGet()/lIndex()
  1. lGet()的语法格式是:$redis->lGet(key, index),作用是返回链表key的index位置的元素值。  
6、lSet()
  1. lSet()的语法格式是:$redis->lSet(key, index, value),作用是将链表key的index位置的元素值设为value。  
7、lRange()/lGetRange()
  1. lRange()的语法格式是:$redis->lRange(key, start, end),作用是返回链表key中start到end位置间的元素。end为-1时,返回所有元素。例如:  
  2. //返回链表lang中的所有元素  
  3. print_r($redis->lRange('lang', 0, -1));  
8、lTrim()/listTrim()
  1. lTrim()的语法格式是:$redis->lTrim(key, start, end),作用是截取链表key中start到end位置间的元素。  
9、lRem()/lRemove()
  1. lRem()的语法格式是:$redis->lRem(key, value, count),作用是删除链表key中count个值为value的元素。count为0,则删除所有value;count大于0,则从头到尾删除count<span style="font-family: Arial, Helvetica, sans-serif;">个元素;count小于0,则从尾到头删除count个元素。</span>  

2.PHP操作Redis之SET(集合)

1、sAdd()
  1. 添加一个VALUE到SET容器中,如果这个VALUE已经存在于SET中,那么返回FLASE。  
  2. $redis->sAdd('key1' , 'member1'); /* TRUE, 'key1' => {'member1'} */  
  3. $redis->sAdd('key1' , 'member2'); /* TRUE, 'key1' => {'member1', 'member2'}*/  
  4. $redis->sAdd('key1' , 'member2'); /* FALSE, 'key1' => {'member1', 'member2'}*/  
2、sRem()
  1. 移除指定的VALUE从SET容器中  
  2. $redis->sAdd('key1' , 'member1');  
  3. $redis->sAdd('key1' , 'member2');  
  4. $redis->sAdd('key1' , 'member3'); /* 'key1' => {'member1', 'member2', 'member3'}*/  
  5. $redis->sRem('key1', 'member2'); /* 'key1' => {'member1', 'member3'} */  
3、sMove()
  1. 将member元素从source集合移动到destination集合中。  
  2. 如果source集合不存在或不包含指定的member元素,则SMOVE命令不执行任何操作,仅返回0。否则,member元素从source集合中被移除,并添加到destination集合中去。  
  3. 当destination集合已经包含member元素时,SMOVE命令只是简单地将source集合中的member元素删除。  
  4. 当source或destination不是集合类型时,返回一个错误。  
  5. $redis->sAdd('key1' , 'member11');  
  6. $redis->sAdd('key1' , 'member12');  
  7. $redis->sAdd('key1' , 'member13'); /* 'key1' => {'member11', 'member12', 'member13'}*/  
  8. $redis->sAdd('key2' , 'member21');  
  9. $redis->sAdd('key2' , 'member22'); /* 'key2' => {'member21', 'member22'}*/  
  10. $redis->sMove('key1', 'key2', 'member13'); /* 'key1' =>  {'member11', 'member12'} *//* 'key2' =>  {'member21', 'member22', 'member13'} */  
4、sIsMember()
  1. 判断member元素是否是集合key的成员。  
  2. $redis->sIsMember('key1', 'member1'); /* TRUE */  
  3. $redis->sIsMember('key1', 'memberX'); /* FALSE */  
5、sIsMember()
  1. 返回集合key中的所有成员。  
  2. $redis->delete('s');  
  3. $redis->sAdd('s', 'a');  
  4. $redis->sAdd('s', 'b');  
  5. $redis->sAdd('s', 'a');  
  6. $redis->sAdd('s', 'c');  
  7. var_dump($redis->sMembers('s'));  
6、sCard()
  1. 返回SET容器的成员数  
  2. $redis->sAdd('key1' , 'member1');  
  3. $redis->sAdd('key1' , 'member2');  
  4. $redis->sAdd('key1' , 'member3'); /* 'key1' => {'member1', 'member2', 'member3'}*/  
  5. $redis->sCard('key1'); /* 3 */  
  6. $redis->sCard('keyX'); /* 0 */  
7、sPop()
  1. 移除并返回集合中的一个随机元素。  
  2. $redis->sAdd('key1' , 'member1');  
  3. $redis->sAdd('key1' , 'member2');  
  4. $redis->sAdd('key1' , 'member3'); /* 'key1' => {'member3', 'member1', 'member2'}*/  
  5. $redis->sPop('key1'); /* 'member1', 'key1' => {'member3', 'member2'} */  
  6. $redis->sPop('key1'); /* 'member3', 'key1' => {'member2'} */  
8、sInter()
  1. 返回指定SETS集合的交集结果。如果只是指定了一个SET集合,那么返回该SET集合。如果在参数中有参数错误,那么则返回FLASE。  
  2. $redis->sAdd('key1', 'val1');  
  3. $redis->sAdd('key1', 'val2');  
  4. $redis->sAdd('key1', 'val3');  
  5. $redis->sAdd('key1', 'val4');  
  6. $redis->sAdd('key2', 'val3');  
  7. $redis->sAdd('key2', 'val4');  
  8. $redis->sAdd('key3', 'val3');  
  9. $redis->sAdd('key3', 'val4');  
  10. var_dump($redis->sInter('key1', 'key2', 'key3'));  
  11. array(2) {  
  12.   [0]=>  
  13.   string(4) "val4"  
  14.   [1]=>  
  15.   string(4) "val3"  
  16. }  
9、sInterStore()
  1. 执行一个交集操作,并把结果存储到一个新的SET容器中。  
  2. $redis->sAdd('key1', 'val1');  
  3. $redis->sAdd('key1', 'val2');  
  4. $redis->sAdd('key1', 'val3');  
  5. $redis->sAdd('key1', 'val4');  
  6. $redis->sAdd('key2', 'val3');  
  7. $redis->sAdd('key2', 'val4');  
  8. $redis->sAdd('key3', 'val3');  
  9. $redis->sAdd('key3', 'val4');  
  10. var_dump($redis->sInterStore('output', 'key1', 'key2', 'key3'));  
  11. var_dump($redis->sMembers('output'));  
  12. int(2)  
  13. array(2) {  
  14.   [0]=>  
  15.   string(4) "val4"  
  16.   [1]=>  
  17.   string(4) "val3"  
  18. }  
10、sUnion()
  1. 执行一个并集操作在N个SET容器之间,并返回结果。  
  2. $redis->delete('s0', 's1', 's2');  
  3. $redis->sAdd('s0', '1');  
  4. $redis->sAdd('s0', '2');  
  5. $redis->sAdd('s1', '3');  
  6. $redis->sAdd('s1', '1');  
  7. $redis->sAdd('s2', '3');  
  8. $redis->sAdd('s2', '4');  
  9. var_dump($redis->sUnion('s0', 's1', 's2'));  
  10. array(4) {  
  11.   [0]=>  
  12.   string(1) "3"  
  13.   [1]=>  
  14.   string(1) "4"  
  15.   [2]=>  
  16.   string(1) "1"  
  17.   [3]=>  
  18.   string(1) "2"  
  19. }  
11、sUnionStore()
  1. 执行一个并集操作就和sUnion()一样,但是结果储存在第一个参数中。  
  2. $redis->delete('s0', 's1', 's2');  
  3. $redis->sAdd('s0', '1');  
  4. $redis->sAdd('s0', '2');  
  5. $redis->sAdd('s1', '3');  
  6. $redis->sAdd('s1', '1');  
  7. $redis->sAdd('s2', '3');  
  8. $redis->sAdd('s2', '4');  
  9. var_dump($redis->sUnionStore('dst', 's0', 's1', 's2'));  
  10. var_dump($redis->sMembers('dst'));  
  11. int(4)  
  12. array(4) {  
  13.   [0]=>  
  14.   string(1) "3"  
  15.   [1]=>  
  16.   string(1) "4"  
  17.   [2]=>  
  18.   string(1) "1"  
  19.   [3]=>  
  20.   string(1) "2"  
  21. }  
12、sDiff()
  1. 执行差集操作在N个不同的SET容器之间,并返回结果。这个操作取得结果是第一个SET相对于其他参与计算的SET集合的差集。  
  2. $redis->delete('s0', 's1', 's2');  
  3. $redis->sAdd('s0', '1');  
  4. $redis->sAdd('s0', '2');  
  5. $redis->sAdd('s0', '3');  
  6. $redis->sAdd('s0', '4');  
  7. $redis->sAdd('s1', '1');  
  8. $redis->sAdd('s2', '3');  
  9. var_dump($redis->sDiff('s0', 's1', 's2'));  
  10. array(2) {  
  11.   [0]=>  
  12.   string(1) "4"  
  13.   [1]=>  
  14.   string(1) "2"  
  15. }  
13、sDiffStore()
  1. 此命令等同于SDIFF,但它将结果保存到destination集合,而不是简单地返回结果集。  
  2. $redis->delete('s0', 's1', 's2');  
  3. $redis->sAdd('s0', '1');  
  4. $redis->sAdd('s0', '2');  
  5. $redis->sAdd('s0', '3');  
  6. $redis->sAdd('s0', '4');  
  7. $redis->sAdd('s1', '1');  
  8. $redis->sAdd('s2', '3');  
  9. var_dump($redis->sDiffStore('dst', 's0', 's1', 's2'));  
  10. var_dump($redis->sMembers('dst'));<strong>  
  11. </strong>  

3.PHP操作Redis之HASH

1、hSet()
  1. 给哈希表中某个 key 设置值.如果值已经存在, 返回 false  
  2. 返回值:  
  3. LONG 如果成功设置,返回 1, 如果 key 已经存在,会替换成新值,且返回 0。失败返回 0  
  4. $redis->delete('h')  
  5. $redis->hSet('h', 'key1', 'hello');  
  6. $redis->hGet('h', 'key1');  
  7. $redis->hSet('h', 'key1', 'plop');  
  8. $redis->hGet('h', 'key1');  
2、hSetNx()
  1. 当哈希表中不存在某 key 时,给该 key 设置一个值  
  2. 返回值:  
  3. BOOL: 成功返回 TRUE. 失败返回 FALSE.  
  4. $redis->delete('h')  
  5. $redis->hSetNx('h', 'key1', 'hello');  
  6. $redis->hSetNx('h', 'key1', 'world');  
3、hGet()
  1. 获得某哈希 key 的值.如果 hash 表不存在或对应的 key 不存在,返回 false  
  2. 返回值:  
  3. STRING ,如果 hash 表不存在或对应的 key 不存在,返回 false  
  4. $redis->delete('h')  
  5. $redis->hSet('h', 'key1', 'hello');  
  6. $redis->hGet('h', 'key1');  
4、hLen()
  1. 哈表中 key 的数量  
  2. 返回值:  
  3. LONG 哈表中 key 的数量.如果 hash 表不存在,或者对应的 key 的值不是 hash 类型,返回 false  
  4. $redis->delete('h')  
  5. $redis->hSet('h', 'key1', 'hello');  
  6. $redis->hSet('h', 'key2', 'plop');  
  7. $redis->hLen('h');  
5、hDel()
  1. 删除一个哈希 key.如果 hash 表不存在或对应的 key 不存在,返回 false  
  2. 返回值:  
  3. BOOL: 成功返回 TRUE. 失败返回 FALSE.  
  4. $redis->delete('h')  
  5. $redis->hSet('h', 'key1', 'hello');  
  6. $redis->hSet('h', 'key2', 'plop');  
  7. $redis->hSet('h', 'key2');  
6、hKeys()
  1. 获得哈希表中所有的 key  
  2. 返回值:  
  3. 数组  
  4. $redis->delete('h');  
  5. $redis->hSet('h', 'a', 'x');  
  6. $redis->hSet('h', 'b', 'y');  
  7. $redis->hSet('h', 'c', 'z');  
  8. $redis->hSet('h', 'd', 't');  
  9. var_dump($redis->hKeys('h'));  
  10. 输出:  
  11. array(4) {  
  12.   [0]=>  
  13.   string(1) "a"  
  14.   [1]=>  
  15.   string(1) "b"  
  16.   [2]=>  
  17.   string(1) "c"  
  18.   [3]=>  
  19.   string(1) "d"  
  20. }  
  21. 顺序是随机的  
7、hVals()
  1. 获得哈希表中所有的值  
  2. 返回值:  
  3. 数组  
  4. $redis->delete('h');  
  5. $redis->hSet('h', 'a', 'x');  
  6. $redis->hSet('h', 'b', 'y');  
  7. $redis->hSet('h', 'c', 'z');  
  8. $redis->hSet('h', 'd', 't');  
  9. var_dump($redis->hVals('h'));  
  10. 输出:  
  11. array(4) {  
  12.   [0]=>  
  13.   string(1) "x"  
  14.   [1]=>  
  15.   string(1) "y"  
  16.   [2]=>  
  17.   string(1) "z"  
  18.   [3]=>  
  19.   string(1) "t"  
  20. }  
  21. 顺序是随机的  
8、hGetAll()
  1. 获得一个哈希表中所有的 key 和 value  
  2. 示例:  
  3. $redis->delete('h');  
  4. $redis->hSet('h', 'a', 'x');  
  5. $redis->hSet('h', 'b', 'y');  
  6. $redis->hSet('h', 'c', 'z');  
  7. $redis->hSet('h', 'd', 't');  
  8. var_dump($redis->hGetAll('h'));  
  9. 输出:  
  10. array(4) {  
  11.   ["a"]=>  
  12.   string(1) "x"  
  13.   ["b"]=>  
  14.   string(1) "y"  
  15.   ["c"]=>  
  16.   string(1) "z"  
  17.   ["d"]=>  
  18.   string(1) "t"  
  19. }  
  20. 顺序是随机的  
9、hExists()
  1. 检查哈希 key是否存在  
  2. 返回值:  
  3. BOOL: 存在返回 true, 不存在返回 false  
  4. $redis->hSet('h', 'a', 'x');  
  5. $redis->hExists('h', 'a');  
  6. $redis->hExists('h', 'NonExistingKey');  
10、hIncrBy()
  1. 给哈希表中某 key 增加一个整数值  
  2. 返回值:  
  3. LONG 增加后的值  
  4. $redis->delete('h');  
  5. $redis->hIncrBy('h', 'x', 2);  
  6. $redis->hIncrBy('h', 'x', 1);  
11、hIncrByFloat()
  1. 给哈希表中某 key 增加一个浮点数值  
  2. 返回值:  
  3. FLOAT 增加后的值  
  4. $redis->delete('h');  
  5. $redis->hIncrByFloat('h','x', 1.5);  
  6. $redis->hIncrByFLoat('h', 'x', 1.5);  
  7. $redis->hIncrByFloat('h', 'x', -3.0);  
12、hMSet()
  1. 给哈希表设置多个 key 的值  
  2. 返回值:  
  3. BOOL  
  4. 示例:  
  5. $redis->delete('user:1');  
  6. $redis->hMset('user:1', array('name' => 'Joe', 'salary' => 2000));  
13、hMGet()
  1. 获得哈希表中多个 key 的值  
  2. $redis->delete('h');  
  3. $redis->hSet('h', 'field1', 'value1');  
  4. $redis->hSet('h', 'field2', 'value2');  
  5. $redis->hmGet('h', array('field1', 'field2')); 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值