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

相关推荐
Trouvaille ~8 分钟前
【MySQL篇】内外连接:多表关联的完整指南
android·数据库·mysql·面试·后端开发·dql·内外连接
KKKlucifer12 分钟前
三权分立 + AI 审计:解析国内堡垒机的合规与智能双引擎
大数据·数据库·人工智能
空太Jun15 分钟前
Redis 5大核心数据类型与持久化实战
数据库·redis·缓存
Java面试题总结34 分钟前
Spring Boot 包扫描新姿势:AutoScan vs @Import vs @ComponentScan 深度对比
java·数据库·spring boot
人工干智能1 小时前
科普:pandas 中的类 SQL语句:transaction.groupby(“card_id“)[‘purchase_day‘].diff()
数据库·sql·pandas
梦想与想象-广州大智汇1 小时前
MySQL 同步数据到 ClickHouse 方案对比分析
数据库·mysql·clickhouse
雨墨✘1 小时前
如何解决SQL多表查询数据重复问题_使用DISTINCT与JOIN优化
jvm·数据库·python
却话巴山夜雨时i1 小时前
互联网大厂Java面试:从Spring Boot到Kafka的业务场景深度剖析
spring boot·redis·spring cloud·微服务·kafka·prometheus·java面试
u0107475461 小时前
JavaScript 递归调用栈深度解析与层级遍历陷阱详解
jvm·数据库·python
身如柳絮随风扬1 小时前
什么是缓存预热
java·spring·缓存