4、Redis-Set【常用】

目录

一、Redis-Set特点

二、常用命令与交并差

三、Redis中Set类型应用场景


一、Redis-Set特点

1、无序:添加的是A,B,C;取出的可能是B,A,C

2、唯一:不允许元素重复


二、常用命令与交并差

|-------------------------|-------------------------|--------------------|
| 格式 | 含义 | 例子 |
| sadd key members[...] | 往key集合中添加一系列元素members | sadd mySet a b c d |
| smembers key | 遍历key集合中的所有元素 | smembers mySet |
| srem key members[...] | 删除key集合中的一系列元素members | srem mySet a c |
| spop key count | 从key集合中随机弹出count个元素 | spop mySet 1 |
[常用命令]

java 复制代码
127.0.0.1:6379> sadd mySet a b c d
(integer) 4
127.0.0.1:6379> smembers mySet // 无序:输出的顺序并不一定是输入的顺序
1) "d"
2) "b"
3) "a"
4) "c"
127.0.0.1:6379> srem mySet a c
(integer) 2
127.0.0.1:6379> smembers mySet
1) "d"
2) "b"
127.0.0.1:6379> spop mySet 1
1) "b"
127.0.0.1:6379> smembers mySet
1) "d"
127.0.0.1:6379> sadd mySet d
(integer) 0 // 不能添加相同的元素
127.0.0.1:6379> smembers mySet
1) "d"

|------------------|--------------------------------------|------------------|
| 格式 | 含义 | 例子 |
| sdiff key1 key2 | 返回key1中特有的元素【差集】 | sdiff set1 set2 |
| sinter key1 key2 | 返回key1和key2共有的元素【交集】 | sinter set1 set2 |
| sunion key1 key2 | 返回key1中的所有元素和key2中的所以元素(不重复)【并集】 | sunion set1 set2 |
[交并差]

java 复制代码
127.0.0.1:6379> sadd set1 a b c d
(integer) 4
127.0.0.1:6379> sadd set2 c d e f
(integer) 4
127.0.0.1:6379> sdiff set1 set2
1) "a"
2) "b"
127.0.0.1:6379> sinter set1 set2
1) "d"
2) "c"
127.0.0.1:6379> sunion set1 set2
1) "d"
2) "c"
3) "f"
4) "e"
5) "b"
6) "a"

三、Redis中Set类型应用场景

1、去重

2、抽奖 spop

3、共同好友 sinter

相关推荐
山猪打不过家猪21 分钟前
(五)毛子整洁架构(分布式日志/Redis缓存/OutBox Pattern)
分布式·缓存
惊起白鸽4503 小时前
MySQL全量,增量备份与恢复
数据库·mysql
暮雨疏桐4 小时前
MySQL SQL Mode及其说明
数据库·sql·mysql·sql mode
Tangcan-5 小时前
【MySQL】数据库基础
数据库·mysql
蔡蓝5 小时前
Mysql的索引,慢查询和数据库表的设计以及乐观锁和悲观锁
数据库·mysql
jstart千语5 小时前
【Redis】分布式锁的实现
数据库·redis·分布式
亚林瓜子5 小时前
AWS EC2源代码安装valkey命令行客户端
redis·云计算·aws·cli·valkey
一把年纪学编程6 小时前
【牛马技巧】word统计每一段的字数接近“字数统计”
前端·数据库·word
极小狐6 小时前
极狐GitLab 通用软件包存储库功能介绍
java·数据库·c#·gitlab·maven
钢铁男儿6 小时前
C# 方法(可选参数)
数据库·mysql·c#