RedisSet类型操作

Redis-Set类型-增删改查

  • 集合就是一堆无序的数据,Redis可以把一堆无序的数据当做Value存储起来
  • 集合中不能出现重复的数据

🐤新增

  • 语法:sadd key value1, [value2, ...]
sadd names BNTang JonathanTang xhh

🍳查询

  • 返回集合中所有元素
  • 语法:smembers key
  • 由于Redis是单线程的,而以上操作都是非常耗时的,所以当元素比较多时需要慎用
smembers names
  • 返回集合中N个元素,随机返回N个
  • 语法:srandmember key [count]
srandmember names 1

🐸删除

  • 随机删除N个元素
  • 语法:spop key
spop names
  • 删除集合中的指定元素
  • 语法:srem key value1, [value2, ...]
srem names xhh

Redis-Set类型-其它操作

🐤追加元素

  • sadd:key不存在就新增,存在就追加
  • sadd:追加的元素不存在就追加,追加的元素存在会自动忽略(就不追加了)
sadd names BNTang JonathanLee
sadd names BNTang
sadd names xhh

经过上面的三条命令发现,只有最后一条才可以追加成功,因为xhh不存在就会追加进去存在的话啥也不干

🐥统计集合中元素个数

  • 语法:scard key
scard names

🦮判断集合中是否有指定元素

  • 语法:sismember key member
  • 存在返回1,不存在返回0
sismember names tyh
sismember names BNTang

Redis中的集合是支持集合间的操作的,也就是求交集,并集和差集

🐤交集

  • 语法:sinter key [key, ...]
  • {1, 2, 3} ∩ {2, 3, 4} =

🐸并集

  • 语法:sunion key [key, ...]
  • {1, 2, 3} ∪ {2, 3, 4} =

🦄差集

  • 语法:sdiff key [key, ...]
  • {1, 2, 3} - {2, 3, 4} =
  • {2, 3, 4} - {1, 2, 3} =

Redis-Set类型-应用场景

抽奖

  • srandmember key [count]

绑定标签

  • sadd key value1, [value2, ...]

社交关系

例如微博

  • sinter key [key, ...]
  • sunion key [key, ...]
  • sdiff key [key, ...]
posted @ 2020-08-08 11:24  BNTang  阅读(394)  评论(0编辑  收藏  举报