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

相关推荐
阿里嘎多哈基米1 小时前
SQL 层面行转列
数据库·sql·状态模式·mapper·行转列
抠脚学代码1 小时前
Ubuntu Qt x64平台搭建 arm64 编译套件
数据库·qt·ubuntu
利刃大大1 小时前
【高并发内存池】五、页缓存的设计
c++·缓存·项目·内存池
jakeswang2 小时前
全解MySQL之死锁问题分析、事务隔离与锁机制的底层原理剖析
数据库·mysql
Heliotrope_Sun2 小时前
Redis
数据库·redis·缓存
一成码农2 小时前
MySQL问题7
数据库·mysql
吃饭最爱2 小时前
JUnit技术的核心和用法
数据库·oracle·sqlserver
专注API从业者2 小时前
Python/Java 代码示例:手把手教程调用 1688 API 获取商品详情实时数据
java·linux·数据库·python
雨落Liy3 小时前
SQL 函数从入门到精通:原理、类型、窗口函数与实战指南
数据库·sql
Kt&Rs3 小时前
MySQL复制技术的发展历程
数据库·mysql