评论

收藏

[NoSQL] Redis 集合(Set)

数据库 数据库 发布于:2021-07-30 19:07 | 阅读数:295 | 评论:0

Redis 集合(Set)
Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
redis的set是string类型的无序集合。
set集合最大可以包含(2的32次方-1  int整型的数字限制)个元素。
关于set集合类型除了基本的添加、删除操作,其他有用的操作还包含集合的取并集(union),交集(intersection),差集(difference)。通过这些操作可以很容易的实现sns中的好友推荐功能。
注意:每个集合中的各个元素不能重复。
该类型应用场合:qq好友推荐。
tom朋友圈(与某某是好友):mary  jack  xiaoming  wang5  wang6
linken朋友圈(与某某是好友):yuehan  daxiong  luce  wang5  wang6
DSC0000.png

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的所有元素,结果是无序的
总结:

  • 安装redis,直接make,再复制相关文件到运行目录
  • 使用


  • 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 
实例
DSC0001.png

DSC0002.png



关注下面的标签,发现更多相似文章