Redis set集合

Redis set集合

Redis Set 是 String 的无序排列。SADD 指令把新的元素添加到 set 中。对 set 也可做一些其他的操作,比如测试一个给定的元素是否存在,对不同 set 取交集,并集或差

  • SADD

添加一个或多个指定的member元素到集合的 key中.指定的一个或者多个元素member 如果已经在集合key中存在则忽略.如果集合key 不存在,则新建集合key,并添加member元素到集合key中.

SADD myset 1 
  • SCARD

返回(集合元素的数量).

myset {1,2,3}

SCARD myset // 3
  • SDIFF

返回两个集合之间的差集

myset1 = {1,3,4}
myset2 = {2,3,4}

SDIFF myset1 myset2 // {1,2}
  • SDIFFSTORE

语法 SDIFFSTORE k1 k2 new_key

返回结果集的数

将两个集合的差集放到一个新的集合中。

SDIFFSTORE myset myset2 myset2
SMEMBERS myset // {1,2}
  • SINTER

返回指定所有的集合的成员的交集.

SINTER myset1 myset2  //{3,4}
  • SINTERSTORE

返回指定所有的集合的成员的交集的数.并把交集放到新的集合中

  • SISMEMBER

判断成员是不是集合中的元素,是返回1 否则返回0

SISMEMBER myset1 2 //0
SISMEMBER myset1 1 //1
  • SMEMBERS

返回集合中的成员列表

SMEMBERS myset1 {1,3,4}
  • SMOVE

将一个集合中的元素移动到另外一个集合中

SMOVE myset1 myset2 '1'
  • SRANDMEMBER

随机返回key集合中的一个或者多个元素.

SRANDMEMBER myset1 2  //{1,4}
SRANDMEMBER myset1 // {1}
  • SREM

在key集合中移除指定的元素

SREM myset "1"
  • SUNION

返回多个集合中的共同的所有成员

SUNION myset1 myset2 // {1 ,2,3,4}
  • SUNIONSTORE

返回多个集合中的共同的所有成员的数,并存在一个新的集合中

SUNIONSTORE newset  myset1 myset2
smembers newset
  • SPOP

删除并返回一个或者多个随机的集合元素

集合使用场景

集合中的元素的是不重复的 可以取并集,差集,获取随机元素,比如做web版的扑克牌游戏。将54张扑克放入一个集合中。用spop随机发牌。

如果本文对您有所帮助,您可以点打赏击请作者喝杯咖啡。