Redis数据结构:集合
集合只会存储非重复元素且无序。
数据结构
- 集合
集合(set)
- 将元素添加到集合
1.sadd命令 格式:sadd key member [member …]
返回添加成功的元素的数量,元素重复时忽略。sadd key member [member ...]
- 从集合中移除元素
1.srem命令 格式:srem key member [member …]
移除元素,返回被移除的元素个数。srem key member [member ...]
- 2.spop命令 格式:spop key [count]
随机移除count个元素,没有给定count默认移除一个元素,执行成功返回被移除的元素,count为负时返回error。spop key [count]
- 移动元素
1.smove命令 格式:smove source destination member
将元素从一个集合移到另一个集合,执行成功返回1,否则返回0,当元素在目标集合中存在时也返回1。smove source destination member
- 获取集合包含的元素
1.smembers命令 格式:smembers key
获取集合包含的所有元素。smembers key
- 2.srandmember命令 格式:srandmember key [count]
随机获取指定数量的元素,没有给定count默认获取一个元素。count大于集合元素个数时返回所有,count为负时返回|count|个元素且允许重复。srandmember key [count]
- 获取集合的元素个数
1.scard命令 格式:scard key
返回集合包含的元素数量scard key
- 检查元素是否存在于集合
1.sismember命令 格式:sismember key member
返回1表示元素存在于集合,返回0表示不存在。sismember key member
- 运算
1.交集
1)sinter命令 格式:sinter key [key …]
返回交集包含的元素。sinter key [key ...]
- 2)sinterstore命令 格式:sinterstore destination key [key …]
将交集存储到指定的destination集合,若destination已存在将先删除其包含元素再存储,执行完毕后返回被存储的交集元素数量。sinterstore destination key [key ...]
- 2.并集
1)sunion命令 格式:sunion key [key …]
返回并集包含的元素。sunion key [key ...]
- 2)sunionstore命令 格式:sunionstore destination key [key …]
将并集存储到指定的destination集合,若destination已存在自动覆盖,执行完毕后返回被存储的并集元素数量。sunionstore destination key [key ...]
- 3.差集
1)sdiff命令 格式:sdiff key [key …]
从第一个key中获取差集并返回差集包含的元素。sdiff key [key ...]
- 2)sdiffstore命令 格式:sdiffstore destination key [key …]
将差集存储到指定的destination集合,若destination已存在自动覆盖,执行完毕后返回被存储的差集元素数量。sdiffstore destination key [key ...]
- 常见用法
1.唯一计数器(对同一个对象只进行一次计数)
2.标签组
3.点赞功能、投票功能
4.抽奖(随机获取元素)
5.共同关注
6.商品筛选(类别交集)