博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis 集合处理
阅读量:5855 次
发布时间:2019-06-19

本文共 5199 字,大约阅读时间需要 17 分钟。

 

学习了列表之后,发现了Redis处理字符串的功能强大。

为了适应不同场景的需求,还有一个用的很多的就是集合。

Redis提供的集合支持的类型是字符串。并且集合中的元素值是唯一的,也就是说不能出现重复数据。

而且,集合的实现是通过哈希的方式,在修改集合的时候复杂度都为O(1)。

Redis支持集合的最大数量为2^32 - 1个。

 

1、SADD 命令


用于将一个或多个元素加入到指定的集合中,由于集合不存在重复元素,所以已经存在的成员会被忽略。

如果指定的集合不存在,则该命令会创建该集合,并且把元素加入进去。

如果指定的KEY不是一个集合,则返回一个错误说明。

127.0.0.1:6379> SADD KEY MEMBER [member ...]

例如,

127.0.0.1:6379> SET SET AOK127.0.0.1:6379> SADD SET 1 2 3 4 5 (error) WRONGTYPE Operation against a key holding the wrong kind of value127.0.0.1:6379> SADD SET1 1 2 3 4 5(integer) 5127.0.0.1:6379> SMEMBERS SET11) "1"2) "2"3) "3"4) "4"5) "5"

2、SCARD 命令


用于返回指定集合中元素的数量。

127.0.0.1:6379> SCARD KEY

例如,

127.0.0.1:6379> SCARD SET1(integer) 5

3、SDIFF 命令


用于返回给定集合之间的差集。

一定是前面的集合减去后面的集合,剩余的元素。

127.0.0.1:6379> SDIFF KEY KEY [key ...]

例如,

127.0.0.1:6379> sadd SET 1 2 3 4 5(integer) 5127.0.0.1:6379> sadd SET1 1 2 3 (integer) 3127.0.0.1:6379> sdiff SET1 SET(empty list or set)127.0.0.1:6379> sdiff SET SET(empty list or set)127.0.0.1:6379> sdiff SET SET11) "4"2) "5"127.0.0.1:6379> sadd SET2 1 2 3 4 5 6(integer) 6127.0.0.1:6379> sdiff SET SET1 SET2(empty list or set)127.0.0.1:6379> sdiff SET2 SET1 SET1) "6"

4、SDIFFSTORE 命令


用于将给定集合之间的差集存储在指定的集合中。

如果指定的DESTINATION集合已存在,则里面的元素会被覆盖。

127.0.0.1:6379> SDIFFSTORE DESTINATION KEY KEY [key ...]

例如,

127.0.0.1:6379> SDIFFSTORE SET2 SET SET1(integer) 2127.0.0.1:6379> SMEMBERS SET21) "4"2) "5"127.0.0.1:6379> SMEMBERS SET11) "1"2) "2"3) "3"127.0.0.1:6379> SMEMBERS SET1) "1"2) "2"3) "3"4) "4"5) "5"

5、SINTER 命令


用于返回给定所有集合的交集。

不存在的集合被视为空集,当给定的集合当中有一个时空集时,结果也为空集。

127.0.0.1:6379> SINTER KEY KEY [key ...]

例如,

127.0.0.1:6379> SMEMBERS SET11) "1"2) "2"3) "3"127.0.0.1:6379> SMEMBERS SET1) "1"2) "2"3) "3"4) "4"5) "5"127.0.0.1:6379> SINTER SET SET11) "1"2) "2"3) "3"

6、SINTERSTORE 命令


用于将给定集合之间的交集存储在指定的集合中。

如果指定的DESTINATION集合已存在,则里面的元素会被覆盖。

127.0.0.1:6379> SINTERSTORE DESTINATION KEY KEY [key ...]

例如,

127.0.0.1:6379> SINTERSTORE SET2 SET SET1(integer) 3127.0.0.1:6379> SMEMBERS SET21) "1"2) "2"3) "3"127.0.0.1:6379> SMEMBERS SET1) "1"2) "2"3) "3"4) "4"5) "5"127.0.0.1:6379> SMEMBERS SET11) "1"2) "2"3) "3"

7、SISMEMBER 命令


用于判断给定的元素是否为指定集合的成员。

如果给定的元素是集合成员,则返回1,如果不是,则返回0。

127.0.0.1:6379> SISMEMBER KEY MEMBER

例如,

127.0.0.1:6379> SMEMBERS SET1) "1"2) "2"3) "3"4) "4"5) "5"127.0.0.1:6379> sismember SET 0(integer) 0127.0.0.1:6379> sismember SET 1(integer) 1

8、SMEMBERS 命令


用于返回指定集合中所有的成员。不存在的集合被视为空集。

127.0.0.1:6379> SMEMBERS KEY

例如,

127.0.0.1:6379> SMEMBERS SET1) "1"2) "2"3) "3"4) "4"5) "5"127.0.0.1:6379> SMEMBERS SE(empty list or set)

 

9、SMOVE 命令


用于将指定成员元素从SOURCE集合移动到DESTINATION集合中。

并且,SMOVE是原子性操作。

如果SOURCE集合不存在或者不包含指定的元素,则不执行任何操作,返回0。

如果DESTINATION集合中已经包含了指定元素,SMOVE操作将该元素从SOURCE集合中删除。

如果SOURCE与DESTINATION不是集合类型是,则返回一个错误说明。

127.0.0.1:6379> SMOVE SOURCE DESTINATION MEMBER

例如,

127.0.0.1:6379> SMEMBERS SET1) "1"2) "2"3) "3"4) "4"5) "5"127.0.0.1:6379> SMEMBERS SET11) "1"2) "2"3) "3"127.0.0.1:6379> SMOVE SET SET1 4(integer) 1127.0.0.1:6379> SMOVE SET SET1 5(integer) 1127.0.0.1:6379> SMOVE SET SET1 6(integer) 0

10、SPOP 命令


用于随机获取指定集合中的一个或几个元素,并且该元素从集合中删除。

获取的个数由COUNT指定,当指定的个数超过集合的元素个数时,仅返回剩余元素。

当集合为空时,返回空集。COUNT只能为正数,如果是负数,则返回一个错误说明。

127.0.0.1:6379> SPOP KEY [count]

例如,

127.0.0.1:6379> SPOP SET 11) "1"127.0.0.1:6379> SPOP SET 31) "2"2) "3"127.0.0.1:6379> SPOP SET 3(empty list or set) 127.0.0.1:6379> SPOP SET -1 (error) ERR index out of range

11、SRANDMEMBER 命令


用于随机获取指定集合中的一个或几个元素但不删除,并且获取的个数由COUNT指定。

如果COUNT是正数,且小于集合基数,则返回COUNT个元素的数组,其中元素内容不重复。

如果COUNT是正数,且大于集合基数,则返回整个集合。

如果COUNT是负数,则返回COUNT个元素的数组,数组中的元素可以重复。

当集合为空时,返回空集。

127.0.0.1:6379> SRANDMEMBER SET [count]

例如,

127.0.0.1:6379> SRANDMEMBER SET 41) "9"2) "8"3) "5"4) "6"127.0.0.1:6379> SRANDMEMBER SET 41) "9"2) "2"3) "8"4) "6"127.0.0.1:6379> SRANDMEMBER SET -21) "8"2) "2"127.0.0.1:6379> SRANDMEMBER SET -21) "2"2) "5"127.0.0.1:6379> SRANDMEMBER SET -81) "10"2) "3"3) "3"4) "10"5) "1"6) "6"7) "8"8) "10"

12、SREM 命令


用于删除给定集合中的一个或几个元素,不存在的元素将被忽略。

当KEY不是一个集合时,则返回一个错误说明。

127.0.0.1:6379> SREM KEY MEMBER [member ...]

例如,

127.0.0.1:6379> SMEMBERS SET 1) "1" 2) "2" 3) "3" 4) "4" 5) "5" 6) "6" 7) "7" 8) "8" 9) "9"10) "10"127.0.0.1:6379> SREM SET 1 3 5 7 9 11(integer) 5127.0.0.1:6379> SMEMBERS SET1) "2"2) "4"3) "6"4) "8"5) "10"

13、SUNION 命令


用于返回给定集合的并集。不存在的集合被视为空集。

127.0.0.1:6379> SUNION KEY KEY [key ...]

例如,

127.0.0.1:6379> SUNION SET SET1 SET21) "1"2) "2"3) "3"4) "4"5) "5"6) "6"7) "8"8) "10"127.0.0.1:6379> SMEMBERS SET1) "2"2) "4"3) "6"4) "8"5) "10"127.0.0.1:6379> SMEMBERS SET11) "1"2) "2"3) "3"4) "4"5) "5"127.0.0.1:6379> SMEMBERS SET21) "1"2) "2"3) "3"

14、SUNIONSTORE 命令


用于将给定的集合的并集存储在指定的集合DESTINATION中。

如果指定的DESTINATION集合已存在,则里面的元素会被覆盖。

127.0.0.1:6379> SUNIONSTORE DESTINATION KEY KEY [key ...]

例如,

127.0.0.1:6379> SMEMBERS SET21) "1"2) "2"3) "3"127.0.0.1:6379> SUNIONSTORE SET2 SET SET1(integer) 8127.0.0.1:6379> SMEMBERS SET21) "1"2) "2"3) "3"4) "4"5) "5"6) "6"7) "8"8) "10"127.0.0.1:6379>

15、SSCAN 命令


SCAN命令及其相关的SSCAN命令、HSCAN命令和ZSCAN命令都用于增量地迭代一集元素。

SSCAN命令用于迭代集合键中的元素。

与SCAN命令类型。

127.0.0.1:6379> sscan SET cursor [MATCH pattern] [COUNT count]

例如,

127.0.0.1:6379> SSCAN SET 0 MATCH *1) "0"2) 1) "2"   2) "4"   3) "6"   4) "8"   5) "10"127.0.0.1:6379> SSCAN SET 0 1) "0"2) 1) "2"   2) "4"   3) "6"   4) "8"   5) "10"

 

转载于:https://www.cnblogs.com/randyma/p/6872486.html

你可能感兴趣的文章
开年发力!华为FusionServer 2路服务器Java应用性能领先
查看>>
对现有城市环境不满 孵化器Y Combinator打算自己建座城
查看>>
MSP:为云计算客户解除后顾之忧
查看>>
我国智能安防细分市场规模分析
查看>>
新型城镇化提质扩容 打造民村智慧城市
查看>>
密歇根州立大学被黑 个人信息和社保号码被盗
查看>>
光速创投狂赚20亿!Snap上市成就下一个“红杉”
查看>>
使用函数计算来打包下载OSS文件
查看>>
你们是不是真的很缺大数据工程师?
查看>>
乔布斯复活也难改变苹果现状?
查看>>
飞利浦与华为企业云战略合作,共同打造健康全程关护云
查看>>
互联网大会闭幕 智慧城市亮点受关注
查看>>
大数据时代的安全问题 先污染后治理
查看>>
企业协作工具 Slack 与 Salesforce 进行深度合作, 将企业服务进行到底
查看>>
手机回收调查:个人信息保护和环保是公众顾虑
查看>>
部署IaaS之IaaS真实案例及注意事项
查看>>
WAPI产业联盟:中国两项近场通信NFC安全技术成国际标准
查看>>
好用的清理数据库脚本
查看>>
拟规定网络平台在一定限期后需删除用户信息
查看>>
打造拼写检查式安全
查看>>