美文网首页
Redis5数据类型4-Set集合

Redis5数据类型4-Set集合

作者: 轻轻敲醒沉睡的心灵 | 来源:发表于2022-03-17 09:59 被阅读0次

1. Set集合介绍

Set数据有几个特点:

  • 无序的、去重的
  • 元素是字符串类型
  • 最多包含232-1个元素

2. Set指令

2.1 增加一个或多个元素

sadd key member [member ...]

127.0.0.1:6379> sadd friends hanmeimei
1
127.0.0.1:6379> sadd friends lilei piter poly
3
127.0.0.1:6379> sadd friends lucy lilei
1
127.0.0.1:6379> sadd friends lilei
0
127.0.0.1:6379>

2.2 查看所有元素

smembers key

127.0.0.1:6379> smembers friends
hanmeimei
piter
poly
lucy
lilei
127.0.0.1:6379> smembers friends
hanmeimei
piter
poly
lucy
lilei
127.0.0.1:6379>

注意:虽然是无序的,但是数据少,可能要进行大量测试才能看出

2.3 返回集合中元素的个数

scard key

127.0.0.1:6379> scard friends
5
127.0.0.1:6379>

2.4 移除一个或者多个元素

srem key member [member ...]

127.0.0.1:6379> sadd friends a b c d
4
127.0.0.1:6379> smembers friends
hanmeimei
piter
poly
c
b
a
lucy
lilei
d
127.0.0.1:6379> srem friends a
1
127.0.0.1:6379> smembers friends
piter
poly
c
b
lucy
lilei
hanmeimei
d
127.0.0.1:6379> srem friends b c d
3
127.0.0.1:6379> smembers friends
lilei
hanmeimei
poly
piter
lucy
127.0.0.1:6379>

2.5 检查元素是否存在集合中

sismember key member

127.0.0.1:6379> sismember friends lucy
1
127.0.0.1:6379> sismember friends a
0
127.0.0.1:6379>

2.6 随机返回集合中指定个数的元素

srandmember key [count]

  • count 不指定,随机返回一个元素
  • count = 0,返回空
  • count > 0,若count小于集合中元素的个数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。若 count 大于等于集合中元素的个数,那么返回整个集合
  • count < 0,返回长度为count绝对值长度的数组,数据中的元素可能会重复
127.0.0.1:6379> srandmember friends
poly
127.0.0.1:6379> srandmember friends 0

127.0.0.1:6379> srandmember friends 3
hanmeimei
piter
lucy
127.0.0.1:6379> srandmember friends 10
lilei
hanmeimei
poly
piter
lucy
127.0.0.1:6379> srandmember friends -3
piter
poly
poly
127.0.0.1:6379>

用处:适合抽奖

2.7 随机移除一个元素并返回此元素

spop key

127.0.0.1:6379> spop friends
lucy
127.0.0.1:6379> smembers friends
lilei
hanmeimei
poly
piter
127.0.0.1:6379>

2.8 把元素从源集合移动到目标集合

smove key dest member

127.0.0.1:6379> smove friends fs piter
1
127.0.0.1:6379> smembers friends
lilei
hanmeimei
poly
127.0.0.1:6379> smembers fs
piter
127.0.0.1:6379>

2.9 差集

  • sdiff key [key ...]
    差集,具有方向性
  • sdiffstore destination key [key ...] 将差集结果存储在目标key中
127.0.0.1:6379> sadd no1 1 2 3 4 5
5
127.0.0.1:6379> sadd no2 4 5 6 7 8
5
127.0.0.1:6379> sdiff no1 no2
1
2
3
127.0.0.1:6379> sdiff no2 no1
6
7
8
127.0.0.1:6379> sdiffstore no3 no1 no2
3
127.0.0.1:6379> smembers no3
1
2
3
127.0.0.1:6379>

2.10 交集

  • sinter key [key ...]
  • sinterstore destination key [key ...] 将交集结果存储在目标key中
127.0.0.1:6379> sinter no1 no2
4
5
127.0.0.1:6379> sinterstore no4 no1 no2
2
127.0.0.1:6379> smembers no4
4
5
127.0.0.1:6379>

用处:使用交集,可以统计2个账户的共同好友或者共同关注的人

2.11 并集

  • sunion key [key ...]
  • sunionstore destination key [key ...] 将并集结果存储在目标key中
127.0.0.1:6379> sunion no1 no2
1
2
3
4
5
6
7
8
127.0.0.1:6379> sunionstore no5 no1 no2
8
127.0.0.1:6379> smembers no5
1
2
3
4
5
6
7
8
127.0.0.1:6379>

相关文章

  • Redis5数据类型4-Set集合

    1. Set集合介绍 Set数据有几个特点: 无序的、去重的 元素是字符串类型 最多包含232-1个元素 2. S...

  • java集合类-4-Set

    HashSet 完全依赖于HashMap TreeSet 完全依赖于NavigableMap接口 Navigabl...

  • Redis5数据类型5-SortedSet集合

    1. SortedSet集合介绍 SortedSet集合与Set集合类似,有以下特点: 数据是有序的,无重复的 每...

  • Redis(二)-基本数据类型

    概述 本节主要分析Redis5大数据类型(对应上一节分析的RedisObject中Type属性:String/Li...

  • redis05集合

    无序集合 集合数据类型与列表数据类型相似,它们都可以存储多个元素;集合数据类型具备的特性是,根据两个集合求左差、右...

  • Redis5数据类型1-String

    上次说到Redis5提供六种数据类型来存储值:string字符串类型、hash散列类型、list列表类型、set集...

  • 快速整明白Redis中的整数集合到底是个啥

    整数集合简介 整数集合(intset)是Redis集合数据类型的内部编码之一,当集合数据类型中的元素都是整数并且元...

  • Redis Stream类型的使用

    一、背景 最近在看redis这方面的知识,发现在redis5中产生了一种新的数据类型Stream,它和kafka的...

  • Python学习打call第十一天:集合

    今天学习一种新的数据类型,集合,集合也是Python很常用到的基本数据类型~ 1.什么是集合 集合(set)是Py...

  • [Java]集合

    1. 集合概述 存储对象:数组(基本数据类型 & 引用数据类型);集合(引用数据类型)数组存储对象:一旦创建长...

网友评论

      本文标题:Redis5数据类型4-Set集合

      本文链接:https://www.haomeiwen.com/subject/pprpdrtx.html