Redis 集合(Set)

举报
孙中明 发表于 2022/01/23 23:30:27 2022/01/23
【摘要】 Redis 集合(Set) Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。 Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。   ...

Redis 集合(Set)

Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

 

redis的setstring类型的无序集合。

 

set集合最大可以包含(232次方-1  int整型的数字限制)个元素。

关于set集合类型除了基本的添加、删除操作,其他有用的操作还包含集合的取并集(union),交集(intersection),差集(difference)。通过这些操作可以很容易的实现sns中的好友推荐功能

注意:每个集合中的各个元素不能重复

该类型应用场合:qq好友推荐。

tom朋友圈(与某某是好友):mary  jack  xiaoming  wang5  wang6

linken朋友圈(与某某是好友):yuehan  daxiong  luce  wang5  wang6

 

list链表内部有多个元素,彼此顺序。

 

set集合内部有多个元素,彼此没有顺序

 

 

tom对linken取差集:结果只有tom的,没有linken

 

linken对tom取差集:结果只有linken的,没有tom

 

sadd key member

添加 string元素到key对应的set集合中,成功近回1

如果元素已经在集合中返回0,key对应的set不存在返回错误

 

 srem key nenber [ nember

从key对应set中移除绐定元素,成功返回

 

 shove p 1 p 2 member

从p1对应set中移除 nenber并添加到p2对应set中

 

 scard key

返回set的元素个

 

 sismember key member

判断 nember是否在set中

 

 sinter key 1 key 2 . - - key

返回所有给定key的交集

 

 sunion key 1 key 2 . - key

返回所有给定key的并集

 

diff key1key2……keyN

返回所有给定key的差集

 

smembers key

返回key对应set的所有元素,结果是无序的

 

总结:

  1. 安装redis,直接make,再复制相关文件到运行目录
  2. 使用
  • key操作  exists   keys   rename   dbsize  flushdb  flushall  select
  • String操作  set   get   mset  mget   incr   decr  incrby  decrby  append  substr
  • list链表操作  lpush  rpop   lrange   llen  ltrim
  • set集合操作  sadd   smembers   scard  sinter  sdiff  sunion 

实例

 

 

 

文章来源: hiszm.blog.csdn.net,作者:孙中明,版权归原作者所有,如需转载,请联系作者。

原文链接:hiszm.blog.csdn.net/article/details/79407678

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。