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

最新文章

  1. 一起学微软Power BI系列-使用技巧(3)Power BI安卓手机版安装与体验
  2. linux查看发行版本
  3. Attribute
  4. [转载]win32 计时器使用
  5. 学习笔记——Maven pom.xml配置详解
  6. hdu 5167 Fibonacci 打表
  7. TableView--通讯录--开篇
  8. 利用mysqld_multi启动管理多实例
  9. 关于Lua 5.1中的debug.hook和coroutine
  10. NET中级课--文件,流,序列化2
  11. MySQL 修改字段类型或长度
  12. 数据库-增删改查操作SQL实现
  13. 个人作业2--英语学习APP案例分析
  14. SUSE12SP3-Mycat(1)安装
  15. Functional Language
  16. dns-prefetch,新打开页面预抓取
  17. 利用反射将Model转化为sql
  18. 装了as之后提示NO JVM installation found.....
  19. SQL语句的三大类
  20. java 中静态变量(类变量)与实例变量 静态方法与实例方法

热门文章

  1. Java学习总结之基本数据类型
  2. 1.基础篇之vue入门
  3. Python调用函数加括号和不加括号的区别
  4. JDBC报错:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone
  5. 基于c/s架构的远程登陆服务的步骤。
  6. linux下安装opencv3.0
  7. 在VMware环境下安装CentOS7
  8. Unity - Cinemachine实现相机抖动
  9. nyoj 524-A-B Problem (java stripTrailingZeros, toPlainString)
  10. ZeroC ICE的远程调用框架