一:Redis 集合(Set)

Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

二:set常用操作

  1)sadd(name,values) name对应的集合中添加元素

  2)scard(name) 获取name对应的集合中元素个数

  3)sdiff(keys, *args)  在第一个name对应的集合中且不在其他name对应的集合的元素集合

  4)sdiffstore(dest, keys, *args) 获取第一个name对应的集合中且不在其他name对应的集合,再将其新加入到dest对应的集合中

  5)sinter(keys, *args) 获取多一个name对应集合的交集

  6)sinterstore(dest, keys, *args) 获取多一个name对应集合的并集,再讲其加入到dest对应的集合中

  7)sismember(name, value) 检查value是否是name对应的集合的成员

  8)smembers(name) 获取name对应的集合的所有成员

  9)smove(src, dst, value) 将某个成员从一个集合中移动到另外一个集合

  10)spop(name) 从集合的左侧(头部)移除一个成员,并将其返回

  11)srandmember(name, numbers) 从name对应的集合中随机获取 numbers 个元素

  12)srem(name, values) 在name对应的集合中删除某些值

  13)sunion(keys, *args)  获取多一个name对应的集合的并集

  14)sunionstore(dest,keys, *args) 获取多一个name对应的集合的并集,并将结果保存到dest对应的集合中

  15)sscan(name, cursor=0, match=None, count=None)

三:示例

  1. [BEGIN] // ::
  2. 127.0.0.1:[]> select 选择会话窗口3
  3. OK
  4. 127.0.0.1:[]> sadd n1 在集合中增加数据
  5. (integer)
  6. 127.0.0.1:[]> sadd n1
  7. (integer)
  8. 127.0.0.1:[]> sadd n1
  9. (integer)
  10. 127.0.0.1:[]> sadd n1
  11. (integer)
  12. 127.0.0.1:[]> SCARD n1 集合中有多少个元素
  13. (integer)
  14. 127.0.0.1:[]> sadd n2
  15. (integer)
  16. 127.0.0.1:[]> sadd n2
  17. (integer)
  18. 127.0.0.1:[]> sadd n2
  19. (integer)
  20. 127.0.0.1:[]> sadd n2
  21. (integer)
  22. 127.0.0.1:[]> scard n2
  23. (integer)
  24. 127.0.0.1:[]> sdiff n1 n2 两个集合的差集在n1中,不在n2
  25. ) ""
  26. ) ""
  27. 127.0.0.1:[]> sdiff n3 n1 n2
  28. (empty list or set)
  29. 127.0.0.1:[]> SDIFFSTORE n3 n1 n2 两个集合的差集在n1中,不在n2中并保存到n3
  30. (integer)
  31. 127.0.0.1:[]> SINTER n1 n2 交集在n1中,也在n2
  32. ) ""
  33. ) ""
  34. 127.0.0.1:[]> SINTERSTORE n4 n1 n2 交集在n1中,也在n2中,并保存到n4
  35. (integer)
  36. 127.0.0.1:[]> SISMEMBER n1 判断元素在不在集合中
  37. (integer)
  38. 127.0.0.1:[]> SMEMBERS n1 查看集合
  39. ) ""
  40. ) ""
  41. ) ""
  42. ) ""
  43. 127.0.0.1:[]> SMEMBERS n2
  44. ) ""
  45. ) ""
  46. ) ""
  47. ) ""
  48. 127.0.0.1:[]> SMEMBERS n3
  49. ) ""
  50. ) ""
  51. 127.0.0.1:[]> SMEMBERS n4
  52. ) ""
  53. ) ""
  54. 127.0.0.1:[]> smove n1 n2 把集合n1中元素1移动集合n2
  55. (integer)
  56. 127.0.0.1:[]> SMEMBERS n1
  57. ) ""
  58. ) ""
  59. ) ""
  60. 127.0.0.1:[]> SMEMBERS n2
  61. ) ""
  62. ) ""
  63. ) ""
  64. ) ""
  65. ) ""
  66. 127.0.0.1:[]> spop n1 从集合左边移出一个元素并还回
  67. ""
  68. 127.0.0.1:[]> SMEMBERS n1
  69. ) ""
  70. ) ""
  71. 127.0.0.1:[]> SRANDMEMBER n2 从集体中随即取2
  72. ) ""
  73. ) ""
  74. 127.0.0.1:[]> SRANDMEMBER n2
  75. ) ""
  76. ) ""
  77. 127.0.0.1:[]> SRANDMEMBER n2
  78. ) ""
  79. ) ""
  80. 127.0.0.1:[]> SRANDMEMBER n2
  81. ) ""
  82. ) ""
  83. 127.0.0.1:[]> SREM n2 从集合中删除一个元素
  84. (integer)
  85. 127.0.0.1:[]> SUNION n1 n2 两个集体并集
  86. ) ""
  87. ) ""
  88. ) ""
  89. ) ""
  90. 127.0.0.1:[]> SUNION n5 n1 n2 两个集体并集,并保存到n5
  91. ) ""
  92. ) ""
  93. ) ""
  94. ) ""
  95. 127.0.0.1:[]> SMEMBERS n5
  96. (empty list or set)
  97. 127.0.0.1:[]> SUNIONSTORE n5 n1 n2 两个集体并集,并保存到n5
  98. (integer)
  99. 127.0.0.1:[]> SSCAN n5 match
  100. (error) ERR syntax error
  101. 127.0.0.1:[]> SSCAN n5 match
  102. ) ""
  103. ) ) ""
  104.  
  105. [END] // ::

  

缓存数据库-redis数据类型和操作(set)的更多相关文章

  1. 缓存数据库-redis数据类型和操作(list)

    转: 狼来的日子里! 奋发博取 缓存数据库-redis数据类型和操作(list) 一:Redis 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素导列表的头部( ...

  2. 缓存数据库-redis数据类型和操作(string)

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合) 一:String(字符串) string是redis ...

  3. 缓存数据库-redis数据类型和操作(sorted set)

    一:Redis 有序集合(sorted set) Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是 ...

  4. 缓存数据库-redis数据类型和操作(hash)

    一:Redis 哈希(Hash) Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象. Redis 中每个 hash 可以存储 232 - 1 ...

  5. 缓存数据库redis

    什么是Redis? Redis是一个TCP服务器,支持请求/响应协议. 在Redis中,请求通过以下步骤完成: 客户端向服务器发送查询,并从套接字读取,通常以阻塞的方式,用于服务器响应. 服务器处理命 ...

  6. Redis数据类型及其操作

    redis数据类型即操作 1. 字符串 set 设置字符串 格式: set key value 例子: set name kainhuck get 获取字符串的值 格式: get key 例子: ge ...

  7. 缓存数据库-redis介绍

    一:Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的 ...

  8. Redis数据类型和操作

    <"Java技术员"成长手册>,包含框架.存储.搜索.优化.分布式等必备知识,都收集在GitHub JavaEgg ,N线互联网开发必备技能兵器谱,欢迎指导 Redis ...

  9. 三个缓存数据库Redis、Memcache、MongoDB

    >>Memcached Memcached的优点:Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key.value的字节大小以及服务器硬件性能,日常环境 ...

随机推荐

  1. 洛谷 P3197 [HNOI2008]越狱 解题报告

    P3197 [HNOI2008]越狱 题目描述 监狱有连续编号为\(1-N\)的\(N\)个房间,每个房间关押一个犯人,有\(M\)种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可 ...

  2. 前端学习 -- Xhtml语法规范

    Xhtml语法规范 HTML中不区分大小写,但是尽量使用小写: HTML的注释不能嵌套: 标签必须结构完整{要么成对出现,要么自结束标签,虽然浏览器会帮我们修正一些不符合规范的内容} 标签可以嵌套但是 ...

  3. 2018.10.20 2018-2019 ICPC,NEERC,Southern Subregional Contest(Online Mirror, ACM-ICPC Rules)

    i207M的“怕不是一个小时就要弃疗的flag”并没有生效,这次居然写到了最后,好评=.= 然而可能是退役前和i207M的最后一场比赛了TAT 不过打得真的好爽啊QAQ 最终结果: 看见那几个罚时没, ...

  4. Apache+tomcat配置动静分离(一个apache一个tomcat,没有做集群)

    1. 下载apache http server,tomcat,mok_jk.so apache下载地址:http://httpd.apache.org/download.cgi tomcat下载地址: ...

  5. python之旅:并发编程之多进程理论部分

    一 什么是进程 进程:正在进行的一个过程或者说一个任务.而负责执行任务则是cpu. 举例(单核+多道,实现多个进程的并发执行): egon在一个时间段内有很多任务要做:python备课的任务,写书的任 ...

  6. 小议主子表INT自增主键插入记录的方法SQL server]教程

    http://www.chinesejy.com/jishu/508/519/2006061781665.html 主子表最常见的大概就是用在进销存.MRP.ERP里面,比如一张销售订单,订单Orde ...

  7. activiti教程之示例项目activiti-explorer运行_百度经验

    https://jingyan.baidu.com/article/4e5b3e19107ad091901e249e.html

  8. Nginx Upstream Keepalive 分析 保持长连接

    Nginx Upstream长连接由upstream模式下的keepalive指令控制,并指定可用于长连接的连接数,配置样例如下: upstream http_backend {     server ...

  9. 关于.Net开源并跨平台的思考

    开源的意义: 关于开源,我个人觉得有两个提高(勿喷). 一方面开源提高了生产力,另一方面开源也是信任的一种体现.为什么这么说呢,在当下的互联网时代,开源是一种核心价值观.人与人沟通交流合作之下,降低成 ...

  10. tp 用group去重

    $baseGoodIds_arr = [1,2,3,4,5,6,7,8,9];$relate_gimgs = D('GoodsImages')->where(['good_id' => [ ...