redis数据类型--set
2024-09-01 19:22:06
set是String的一个无序集合,最大存储量2^32-1(大概40多亿)
1、操作命令:(xxx可以是任意字符串)
sadd xxx a b c d e (添加一个或多个)
smembers xxx (查看所有)
scard xxx (统计有多少个元素)
srandmember xxx (随机取一个)
spop xxx (随机弹出一个,弹出的将永远消失,和移除操作类似)
srem xxx a c (移除一个或多个【将a和c从value中移除】)
sismember xxx a (查看是否存在某个元素【查看a是否存在value中】)
存储实现原理:
Redis中用inset或者hashtable来存储set集合。如果存储的元素都是整数则用insert存储,如果元素个数超过512个则用hashtable(数组+链表)存储,或者不是整数类型的也是用hashtable存储。
应用场景:
1、抽奖:spop xxx
2、点赞、签到、打卡(例:微博id:t1001,用户id:u3001)
用st1024来实现某个微博或者微信的点赞用户。
点赞了这条微博:sadd t1001 u3001
取消点赞:srem t1001 u3001
是否点赞:sismember t1001 u3001
点赞的所有的用户:smembers t1001
点赞总数:scard t1001
3、商品标签:用tags:i5001维护商品标签(sadd tags:i5001 画面清晰 sadd tags:i5001 真彩清晰显示屏)
4、商品筛选:
获取差集
sdiff set1 set2
获取交集(intersection )
sinter set1 set2
获取并集
sunion set1 set2
最新文章
- 一起学微软Power BI系列-使用技巧(3)Power BI安卓手机版安装与体验
- linux查看发行版本
- Attribute
- [转载]win32 计时器使用
- 学习笔记——Maven pom.xml配置详解
- hdu 5167 Fibonacci 打表
- TableView--通讯录--开篇
- 利用mysqld_multi启动管理多实例
- 关于Lua 5.1中的debug.hook和coroutine
- NET中级课--文件,流,序列化2
- MySQL 修改字段类型或长度
- 数据库-增删改查操作SQL实现
- 个人作业2--英语学习APP案例分析
- SUSE12SP3-Mycat(1)安装
- Functional Language
- dns-prefetch,新打开页面预抓取
- 利用反射将Model转化为sql
- 装了as之后提示NO JVM installation found.....
- SQL语句的三大类
- java 中静态变量(类变量)与实例变量 静态方法与实例方法
热门文章
- Java学习总结之基本数据类型
- 1.基础篇之vue入门
- Python调用函数加括号和不加括号的区别
- JDBC报错:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone
- 基于c/s架构的远程登陆服务的步骤。
- linux下安装opencv3.0
- 在VMware环境下安装CentOS7
- Unity - Cinemachine实现相机抖动
- nyoj 524-A-B Problem (java stripTrailingZeros, toPlainString)
- ZeroC ICE的远程调用框架