Redis中Set数据类型的常见命令

一.Set 类型

1.基本介绍

set不同含义:①集合(本文所指) ②设置(与get对应)

集合就是把一些有关联的数据放到一起:

集合的特点:

①: 集合中的元素是无序的

②: 集合中的元素是不能重复的(唯一的)

注:和list类似,集合中的每一个元素也都是String类型(可用json格式让String拥有存储"结构化"数据的功能)

2.Set常见命令:

①sadd命令: 往集合中添加元素

语法: sadd key number number... --->返回成功添加的元素个数

例: sadd key 1 2 3 4 -->返回4

sadd key 1 1 2 3 4 -->返回4 (集合中的元素是不能重复的(唯一的))

②: smembers 命令: 查询key内容

语法:smembers key --->返回key中所有元素

③: sismember 命令: 查询某个元素是否存在

语法: sismember key number --->返回值: 存在返回1,不存在返回0

④: spop 命令: 随机删除集合中的一个/多个元素(又查又删)

语法: spop key count --->返回被删除的元素

⑤: srandmember命令: 随机取集合的一个元素(只查不删)

语法: srandmember key -->返回取出的元素

⑥: smove 命令: 将元素移动到另一个集合

语法: smove source destination member --->返回值:1成功,0失败

(本质:从source集合上删除元素,再将这个元素插入destination)

⑦: srem 命令: 将指定的元素从set中删除

语法: srem key member member... -->返回成功删除的元素个数

⑧:集合间操作:交集,并集,差集

介绍差集: A=1, 2, 3, 4 B=3, 4, 5, 6 --->A-B=1, 2(结果是在A中存在,在B中不存在)

<1> sinter 命令:求交集(版本一)

语法: sinter key key... -->返回求得的交集内容

<2> sinterstore 命令: 把算好的交集放到destination 这个key对应的集合中(版本二)

语法: sinterstore destination key key... --->返回交集的元素个数

<3> sunion 命令: 求并集(版本一)

语法: sunion key key... -->返回求得的并集内容

<4> sunionstore 命令:将所求并集存放到destination这个key对应的集合中

语法: sunionstore destination key key... --->返回所求并集元素个数

<5> sdiff 命令: 求差集

语法: sdiff key key... --->返回差集内容(第一个集合里有、别的集合里没有的元素)

<6> sdiffstore 命令 :将所求差集存放到destination这个key对应的集合中

语法: sdiffstore destination key key... -->返回差集元素个数

<7> scard 命令: 获取集合元素的数量

语法:scard key --->返回个数

3,Set内部编码

1) intset(整数集合),元素必须为整数

2) hashtable(哈希表)

4.Set应用场景

①: 使用Set来保存用户的"标签" --->例如:抖音每个用户的偏好

②: 用Set来计算用户间的共同好友

③: 用Set统计UV(基于Set去重能力实现) 注:衡量用户规模用:1.PV 2.UV

相关推荐
围炉聊科技1 分钟前
长期免费的数据库方案——零成本基建系列
数据库
PC2005-cloud26 分钟前
DeepSeek Harness 创建 skill 指南:结构、安装、使用
笔记·学习
YM52e34 分钟前
分页查询的基石:ArkTS 为鸿蒙商品列表设计 LIMIT/OFFSET 的表
android·学习·华为·harmonyos
math_hongfan38 分钟前
主从嵌套层次分明:ArkUI 订单卡片内嵌明细的鸿蒙界面
学习·华为·harmonyos
小强库计算机毕业设计2 小时前
SpringBoot+Vue3 学生宿舍管理系统实战
java·spring boot·后端·vue·学生宿舍管理系统
梁辰兴2 小时前
软件工程:数据结构设计
数据库·软件工程·设计原则·设计方法·梁辰兴·数据库结构设计·数据库结构类型
李冰然2 小时前
深入Java集合框架:HashMap源码解析(JDK 8)
java
库玛西2 小时前
现代 C++ 智能指针全景指南:从 RAII 思想到工业级实践
c语言·开发语言·c++·笔记·面试
AC赳赳老秦2 小时前
风控岗应用:OpenClaw 采集公开司法与经营异常数据,自动生成企业风险评估报告
大数据·c语言·数据库·人工智能·python·php·openclaw
还不秃顶的计科生3 小时前
具身智能论文学习8:Octo: An Open-Source Generalist Robot Policy
人工智能·深度学习·学习·机器学习·语言模型·vla·vlm