$redis->setphp_Redis - PHP操作redis - Set数据类型函数

这篇博客详细介绍了如何使用PHP的Redis扩展操作Set数据类型,包括sAdd、sRem、sMove、sIsMember、sCard、sPop、sRandMember、sInter、sInterStore、sUnion、sUnionStore、sDiff、sDiffStore和sMembers等函数的使用方法和测试案例。
摘要由CSDN通过智能技术生成

Redis - PHP操作redis - Set数据类型函数

程序员日记      2019-08-21

1.sAdd

功能

添加一个VALUE到SET容器中,如果这个VALUE已经存在于SET中,那么返回FLASE。

命令格式sAdd(key,value)

说明

key:键值

value:要插入的值

测试用例$redis->sAdd('key1' , '123'); /* TRUE, 'key1' => {'123'} */

$redis->sAdd('key1' , '345'); /* TRUE, 'key1' => {'123', '345'}*/

$redis->sAdd('key1' , '345'); /* FALSE, 'key1' => {'123', '345'}*/

2.sRem

功能

从SET容器中移除指定的VALUE

命令格式sRem(key,value)

说明

key:键值

value:要移除的值

测试用例$redis->sAdd('key1' , '123'); /* TRUE, 'key1' => {'123'} */

$redis->sAdd('key1' , '345'); /* TRUE, 'key1' => {'123', '345'}*/

$redis->sAdd('key1' , '345'); /* FALSE, 'key1' => {'123', '345'}*/

$redis->sRem('key1', '123'); /* 'key1' => {'456'} */

3.sMove

功能

移动一个指定的MEMBER从源SET到指定的另一个SET中。

命令格式sMove(set1,set2,value)

说明

set1:源set

set2:目标set

value:要移动的值

测试用例$redis->sAdd('key1' , '123');

$redis->sAdd('key1' , '345');

$redis->sAdd('key2' , 'abc');

$redis->sAdd('key2' , 'def');

/*

'key1' => {'123', '345'}

'key2' => {'abc', 'def'}

*/

$redis->sMove('key1', 'key2', '123');

/*

'key1' => {'345'}

'key2' => {'abc', 'def','123'}

*/

4.sIsMember

功能

检查VALUE是否是SET容器中的成员。

命令格式sIsMember(key,value)

说明

key:目标键值

value:要检查的值

测试用例$redis->sAdd('key1' , 'member1');

$redis->sAdd('key1' , 'member2');

$redis->sAdd('key1' , 'member3'); /* 'key1' => {'member1', 'member2', 'member3'}*/

$redis->sIsMember('key1', 'member1'); /* TRUE */

$redis->sIsMember('key1', 'memberX'); /* FALSE */

5.sCard

功能

返回SET容器的成员数

命令格式sCard(key)

说明

key:目标键值

测试用例$redis->sAdd('key1' , 'member1');

$redis->sAdd('key1' , 'member2');

$redis->sAdd('key1' , 'member3'); /* 'key1' => {'member1', 'member2', 'member3'}*/

$redis->sCard('key1'); /* 3 */

6.sPop

功能

随机返回一个元素,并且在SET容器中移除该元素

命令格式sPop(key)

说明

key:目标键值

测试用例$redis->sAdd('key1' , 'member1');

$redis->sAdd('key1' , 'member2');

$redis->sAdd('key1' , 'member3'); /* 'key1' => {'member1', 'member2', 'member3'}*/

$redis->sPop('key1');

7.sRandMember

功能

取得指定SET容器中的一个随机元素,但不会在SET容器中移除它。

命令格式sRandMember(key)

说明

key:目标键值

测试用例$redis->sAdd('key1' , 'member1');

$redis->sAdd('key1' , 'member2');

$redis->sAdd('key1' , 'member3'); /* 'key1' => {'member1', 'member2', 'member3'}*/

$redis->sRandMember('key1');

8.sInter

功能

返回指定SETS集合的交集结果。如果只是指定了一个SET集合,那么返回该SET集合。如果在参数中有参数错误,那么则返回FLASE。

命令格式sInter(set1,set2,...)

说明

set1,set2,...:代表不同的SET集合。

测试用例$redis->sAdd('key1' , '123');

$redis->sAdd('key1' , 'abc');

$redis->sAdd('key1' , '346'); /* 'key1' => {'123', 'abc', '346'}*/

$redis->sAdd('key2' , '345');

$redis->sAdd('key2' , 'abd');

$redis->sAdd('key2' , '346'); /* 'key1' => {'345', 'abd', '346'}*/

$out = $redis->sInter('key1','key2');/* $out = ['346'] */

9.sInterStore

功能

执行一个交集操作,并把结果存储到一个新的SET容器中。

命令格式sInter(output,{set1,set2,...})

说明

output:要输出的SET

set1,set2,...:代表不同的SET集合。

测试用例$redis->sAdd('key1' , '123');

$redis->sAdd('key1' , 'abc');

$redis->sAdd('key1' , '346'); /* 'key1' => {'123', 'abc', '346'}*/

$redis->sAdd('key2' , '345');

$redis->sAdd('key2' , 'abd');

$redis->sAdd('key2' , '346'); /* 'key1' => {'345', 'abd', '346'}*/

$redis->sInterStore('out','key1','key2');/* out = ['346'] */

10.sUnion

功能

执行一个并集操作在N个SET容器之间,并返回结果。

命令格式sUnion(set1,set2,...)

说明

set1,set2,...:代表不同的SET集合。

测试用例$redis->sAdd('key1' , '123');

$redis->sAdd('key1' , 'abc');

$redis->sAdd('key1' , '346'); /* 'key1' => {'123', 'abc', '346'}*/

$redis->sAdd('key2' , '345');

$redis->sAdd('key2' , 'abd');

$redis->sAdd('key2' , '346'); /* 'key1' => {'345', 'abd', '346'}*/

$redis->sUnion('key1','key2');/* ['123','346','345','abc','abd'] */

11.sUnionStore

功能

执行一个并集操作,并把结果存储到一个新的SET容器中。

命令格式sUnionStore(output,{set1,set2,...})

说明

output:要输出的SET

set1,set2,...:代表不同的SET集合。

测试用例$redis->sAdd('key1' , '123');

$redis->sAdd('key1' , 'abc');

$redis->sAdd('key1' , '346'); /* 'key1' => {'123', 'abc', '346'}*/

$redis->sAdd('key2' , '345');

$redis->sAdd('key2' , 'abd');

$redis->sAdd('key2' , '346'); /* 'key1' => {'345', 'abd', '346'}*/

$redis->sUnionStore('out','key1','key2');/* out = ['123','346','345','abc','abd'] */

12.sDiff

功能

执行差集操作在N个不同的SET容器之间,并返回结果。这个操作取得结果是第一个SET相对于其他参与计算的SET集合的差集。(Result = SET0 - (SET1 UNION SET2 UNION ....SET N))

命令格式sDiff(set1,set2,...)

说明

set1,set2,...:代表不同的SET集合。

测试用例$redis->delete('key1', 'key2');

$redis->sAdd('key1' , '123');

$redis->sAdd('key1' , '345');

$redis->sAdd('key1' , '456'); /* 'key1' => {'123', '345', '456'}*/

$redis->sAdd('key2' , '123');

$redis->sAdd('key2' , '345');/* 'key2' => {'123', '345''}*/

$out = $redis->sDiff('key1','key2');/* out = ['456'] */

13.sDiffStore

功能

与sDiff函数功能一直,只是结果为一个新的SET集合,存储到dstkey。

命令格式sDiffStore(output,{set1,set2,...})

说明

output:要输出的SET

set1,set2,...:代表不同的SET集合。

测试用例$redis->delete('key1', 'key2');

$redis->sAdd('key1' , '123');

$redis->sAdd('key1' , '345');

$redis->sAdd('key1' , '456'); /* 'key1' => {'123', '345', '456'}*/

$redis->sAdd('key2' , '123');

$redis->sAdd('key2' , '345');/* 'key2' => {'123', '345''}*/

$redis->sDiffStore('out','key1','key2');/* out = ['456'] */

14.sMembers

功能

返回SET集合中的所有元素。

命令格式sMembers(key)

说明

key:键值

测试用例$redis->delete('key1');

$redis->sAdd('key1' , '123');

$redis->sAdd('key1' , '345');

$redis->sAdd('key1' , '456'); /* 'key1' => {'123', '345', '456'}*/

$redis->sMembers('key1');/* out = ['456'] */

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值