设为首页 收藏本站
查看: 840|回复: 0

[经验分享] redis 学习笔记3--set

[复制链接]

尚未签到

发表于 2016-12-18 06:50:31 | 显示全部楼层 |阅读模式
  redis学习笔记3--set
  list:有序且,允许重复数据的链表 存在POP PUSH的概念
  set: 无需序,不能重复的集合 主要是ADD 
  sortSet:有序,不能重复的集合 
  整体结构图:
  http://dl.iyunv.com/upload/picture/pic/115943/f6e6971a-0216-3fe3-b89c-4ec5b53b762a.jpg
  1.SADD 新增元素
  语法: sadd key value 
  实践:
  redis 127.0.0.1:6379> sadd s1 1
  (integer) 1
  redis 127.0.0.1:6379> sadd s1 2 
  (integer) 1
  redis 127.0.0.1:6379> sadd s2 3 
  (integer) 1
  redis 127.0.0.1:6379> sadd s1 1      // 重复数据不会被添加
  (integer) 0
  redis 127.0.0.1:6379>
  2.SREM 删除元素
  语法:srem key value 
  实践:
  redis 127.0.0.1:6379> smembers s1 
  1) "1"
  2) "2"
  redis 127.0.0.1:6379> srem s1 1       // 删除s1中的1元素
  (integer) 1
  redis 127.0.0.1:6379> smembers s1 
  1) "2"
  redis 127.0.0.1:6379> 
  3.SMEMBERS 列出所有信息 类似list的 lrange
  语法:smembers key 
  实践:
  redis 127.0.0.1:6379> smembers s1 
  1) "2"
  redis 127.0.0.1:6379> 
  4.SISMEMBER 判断是否存在该元素
  语法:sismember key value 
  1:存在该元素
  0:不存在
  实践:
  redis 127.0.0.1:6379> sismember s1 1   存在的元素返回1
  (integer) 1
  redis 127.0.0.1:6379> sismember s1 3   不存在的元素返回0
  (integer) 0
  redis 127.0.0.1:6379>
  5.SCARD 计算集合中元素总数 size
  语法:scard key 
  实践:
  redis 127.0.0.1:6379> scard s1     // 返回集合中元素个数
  (integer) 2
  redis 127.0.0.1:6379> 
  6.SMOVE 将集合中一个元素转移到另一个集合中
  语法: smove  source destination value 
  实践:
  redis 127.0.0.1:6379> smembers s1 
  1) "1"
  2) "2"
  redis 127.0.0.1:6379> smembers s2
  (empty list or set)
  redis 127.0.0.1:6379> smove s1 s2 1    // 将S1中的1移动到了S2中
  (integer) 1
  redis 127.0.0.1:6379> smembers s1 
  1) "2"
  redis 127.0.0.1:6379> smembers s2
  1) "1"
  redis 127.0.0.1:6379>
  7.SPOP 随机弹出一个元素
  语法: spop key 
  实践:
  redis 127.0.0.1:6379> smembers s1 
  1) "1"
  2) "2"
  3) "3"
  4) "4"
  redis 127.0.0.1:6379> spop s1           // 随机弹出一个元素
  "3"
  redis 127.0.0.1:6379> smembers s1 
  1) "1"
  2) "2"
  3) "4"
  redis 127.0.0.1:6379> 
  8.SRANDMEMBER 随机获取一个元素,但是不弹出集合,这个是跟SPOP唯一的区别
  语法: SRANDMEMBER
  实践:
  redis 127.0.0.1:6379> smembers s1 
  1) "1"
  2) "2"
  3) "4"
  redis 127.0.0.1:6379> SRANDMEMBER s1   //  随机取得一个数据,但是元素不会丢失
  "4"
  redis 127.0.0.1:6379> smembers s1 
  1) "1"
  2) "2"
  3) "4"
  redis 127.0.0.1:6379>
  9.SINTER 取两个集合的交集
  语法:SINTER key1 key2 
  实践:
  redis 127.0.0.1:6379> smembers s2 
  1) "1"
  2) "10"
  redis 127.0.0.1:6379> smembers s1 
  1) "1"
  2) "2"
  3) "4"
  redis 127.0.0.1:6379> sinter s1 s2    // 两个集合共同的元素是 1 
  1) "1"
  redis 127.0.0.1:6379>
  10.SINTERSTORE 取两个集合的交集并保存到另一个集合中 
  语法:SINTERSTORE destination key1 key2 
  实践:
  redis 127.0.0.1:6379> smembers s1
  1) "1"
  2) "2"
  3) "3"
  redis 127.0.0.1:6379> smembers s2
  1) "1"
  2) "10"
  redis 127.0.0.1:6379> smembers s3                 //这个时候S3是空的
  (empty list or set)
  redis 127.0.0.1:6379> sinterstore s3  s1 s2       //取两个的交集并保存到s3 中
  (integer) 1
  redis 127.0.0.1:6379> smembers s3
  1) "1"
  redis 127.0.0.1:6379>
  11.SUNION  取两个集合的并集 
  语法:SUNION key1 key2 
  实践:
  redis 127.0.0.1:6379> smembers s1
  1) "1"
  2) "2"
  3) "3"
  redis 127.0.0.1:6379> smembers s2
  1) "1"
  2) "10"
  redis 127.0.0.1:6379> sunion s1 s2              // 取得两个集合的并集
  1) "1"
  2) "2"
  3) "3"
  4) "10"
  redis 127.0.0.1:6379> 
  12.SUNIONSTORE 取两个集合的并集并保存到另一个集合中 
  语法: SUNIONSTORE destination key1 key2  
  实践:
  redis 127.0.0.1:6379> smembers s1
  1) "1"
  2) "2"
  3) "3"
  redis 127.0.0.1:6379> smembers s2
  1) "1"
  2) "10"
  redis 127.0.0.1:6379> sunionstore  s4 s1 s2 
  (integer) 4
  redis 127.0.0.1:6379> smembers s4
  1) "1"
  2) "2"
  3) "3"
  4) "10"
  redis 127.0.0.1:6379> 
  13.SDIFF 取两个集合的差集
  语法:SDIFF key1 key2
  实践:
  redis 127.0.0.1:6379> smembers s1
  1) "1"
  2) "2"
  3) "3"
  redis 127.0.0.1:6379> smembers s2
  1) "1"
  2) "10"
  redis 127.0.0.1:6379> sdiff s1 s2    // 获取的是两个之间的差集
  1) "2"
  2) "3"
  redis 127.0.0.1:6379> 
  14.SDIFFSTORE 取两个集合的差集 并保存到第三个集合中
  语法:SDIFFSTORE key1 key2 diffSet
  实践:
  redis 127.0.0.1:6379> smembers s1
  1) "1"
  2) "2"
  3) "3"
  redis 127.0.0.1:6379> smembers s2
  1) "1"
  2) "10"
  redis 127.0.0.1:6379> sdiffstore s5  s1 s2    // 将差集的数据保存到s5中 
  (integer) 2
  redis 127.0.0.1:6379> smembers s5
  1) "2"
  2) "3"

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-315646-1-1.html 上篇帖子: redis HA策略 下篇帖子: Redis服务快速部署
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表