Redis集合 set 详解

Set简介

set 类似于 Java 中的 HashSet ,是redis中的一种数据结构,它是一个无序并且唯一的键值集合,并且储存时不会按照插入的先后顺序进行.一个集合中最多可以储存2^32 -1个元素。当你需要存储一个列表数据,又不希望出现重复数据时,set 是一个很好的选择,并且 set 提供了判断某个成员是否在一个 set 集合内的重要接口,这个也是 list 所不能提供的。

set集合不仅支持集合内的增删改查,还支持多个集合的交集、并集和差集。

常用命令

1.往集合mySet中存入元素,元素如果以存在则忽略,如果集合mySet不存在则新建

命令:往集合mySet中添加元素。

sadd mySet 元素

2.从集合mySet中删除元素

命令:

srem mySet 元素

3.获取集合mySet中的所有元素

命令:

smembers mySet

4.获取集合mySet中的元素个数

命令:

scard mySet

5.判断元素是否存在于集合mySet中

命令:

sismember mySet 元素

6.从集合mySet中随机选出n个元素,并不从集合中删除

命令:

srandmember mySet n

7.从集合mySet中随机选出n个元素,并从集合中删除

命令:

spop mySet n

8.交集操作,取多个集合的交集

命令:

sinter set1 set2 set3

9.取交集并把结果存入新集合newSet中

命令:

sinterstore newSet set1 set2 set3

10.并集操作,取多个集合的并集

命令:

sunion set1 set2 set3

11.取并集并把结果存入新集合newSet中

命令:

sunionstore newSet set1 set2 set3

12.差集操作,取多个集合的差集

命令;

sdiff set1 set2

13.取差集并把结果存入新集合newSet中

命令:

sdiff newSet set1 set2

应用场景

set的应用场景主要取决于它的特性:无序,不可重复,支持交差并集的操作。

因此set类型适合用来数据去重和保证数据的唯一性,还可以用来统计多个集合的交集并集和差集。只要涉及到这些方面都可以使用set去处理。

例如:

1.点赞:set类型可以保证每个用户只点一次赞,例如key值为帖子id,value为用户id。

2.共同关注:每个用户的关注列表可以用一个set集合表示,取两个用户集合的并集即可查看到用户的共同关注。

相关推荐
m0_63152982几秒前
SQL复杂数据聚合_嵌套子查询与GROUP BY配合
jvm·数据库·python
2301_809204703 分钟前
Golang如何做Clean Architecture_Golang整洁架构教程【详解】
jvm·数据库·python
m0_624578593 分钟前
PHP源码能否在无盘工作站运行_网络启动硬件要求【说明】
jvm·数据库·python
khalil10204 分钟前
代码随想录算法训练营Day-50 图论02 | 99.岛屿数量-深搜、99.岛屿数量-广搜 、100.岛屿的最大面积
数据结构·c++·算法·leetcode·深度优先·图论
Elastic 中国社区官方博客4 分钟前
Elasticsearch ES|QL “读取时模式”:你的未映射字段一直都在那里
大数据·数据库·sql·elasticsearch·搜索引擎·全文检索
Brilliantwxx4 分钟前
【C++】模版进阶(特化+分离编译+非类型模版参数)
开发语言·数据结构·c++·算法
bnmoel5 分钟前
数据结构深度剖析链表全集:结构实现、分类与底层原理全解析
c语言·数据结构·算法·链表·双向链表
Languorous.5 分钟前
C++数据结构高阶|跳表(Skip List)深度解析:从原理到手写实现,面试高频考点全覆盖
数据结构·c++·list
yexuhgu6 分钟前
CSS Grid布局如何实现项目重叠效果_利用z-index与grid-area实现
jvm·数据库·python
Elastic 中国社区官方博客7 分钟前
Elasticsearch 查询日志:每个查询一行协调器级别日志,适用于 ES|QL、DSL、SQL 和 EQL
大数据·数据库·sql·elasticsearch·搜索引擎·全文检索·可用性测试