sets类型及操作:

set是集合,它是string类型的无序集合。set是通过hash table实现的,

添加、删除和查找的复杂度都是O(1).对集合我们可以取并集、交集、差集。

通过这些操作我们可以实现sns中好友推荐(如QQ)和blog的tag(标签)功能。

sadd方法:添加元素

smembers方法:查看集合的所有成员

127.0.01:6379> SADD set "one" "two"
(integer) 2
127.0.01:6379> SMEMBERS set
1) "two"
2) "one"

srem方法:删除集合元素

127.0.01:6379> SMEMBERS set
1) "two"
2) "one"
127.0.01:6379> SREM set "one"
(integer) 1
127.0.01:6379> SMEMBERS set
1) "two"

spop方法:随机返回并删除名称为key的集合元素

127.0.01:6379> sadd set "two"
(integer) 0
127.0.01:6379> sadd set "one"
(integer) 1
127.0.01:6379> sadd set "three"
(integer) 1
127.0.01:6379> sadd set "four"
(integer) 1
127.0.01:6379> sadd set "five"
(integer) 1
127.0.01:6379> spop set
"five"
127.0.01:6379> spop set
"one"
127.0.01:6379> spop set
"three"
127.0.01:6379>

sdiff方法:两个集合的差集

127.0.01:6379> sadd set1 "one" "two"
(integer) 2
127.0.01:6379> sadd set2 "three" "two"
(integer) 2
127.0.01:6379> SMEMBERS set1
1) "two"
2) "one"
127.0.01:6379> SMEMBERS set2
1) "two"
2) "three"
127.0.01:6379> SDIFF set1 set2
1) "one"
127.0.01:6379> SDIFF set2 set1
1) "three"

sdiffstore方法:将两个集合的差集存到一个集合中

127.0.01:6379> SMEMBERS set2
1) "one"
2) "two"
3) "three"
127.0.01:6379> SMEMBERS set1
1) "three"
127.0.01:6379> SDIFF set1 set2
(empty list or set)
127.0.01:6379> SDIFF set2 set3
1) "three"
2) "two"
3) "one"
127.0.01:6379> SDIFF set2 set1
1) "two"
2) "one"
127.0.01:6379> SDIFFstore set3  set2 set1
(integer) 2
127.0.01:6379> SMEMBERS set3
1) "two"
2) "one"

sinter取两个集合的交集:

127.0.01:6379> sinter set1 set2
1) "three"

sinterstore 返回所有给定key的交集,并将结果存到另一个key

127.0.01:6379> sinterstore set4 set1 set2
(integer) 1
127.0.01:6379> SMEMBERS set4
1) "three"

sunion返回所有给定key的集合的并集

127.0.01:6379> sunion set1 set2
1) "two"
2) "one"
3) "three"

sunionstore 将并集存储到另一个集合中

127.0.01:6379> sunionstore set5 set1 set2
(integer) 3
127.0.01:6379> SMEMBERS set5
1) "two"
2) "one"
3) "three"

smove方法:从第一个key对应的set中指定元素移动到第二个集合中

127.0.01:6379> SMEMBERS set5
1) "two"
2) "one"
3) "three"
127.0.01:6379> smove set5 set6 one
(integer) 1
127.0.01:6379> SMEMBERS set5
1) "two"
2) "three"
127.0.01:6379> SMEMBERS set6
1) "one"

scard方法:查看集合中的元素个数

127.0.01:6379> SMEMBERS set5
1) "two"
2) "three"
127.0.01:6379> scard set5
(integer) 2

sismember方法:测试指定的元素是否是集合中的元素

127.0.01:6379> SMEMBERS set5
1) "two"
2) "three"
127.0.01:6379> SISMEMBER set5 "two"
(integer) 1

srandmember方法:随机返回名称为key的set的一个元素,但不删除元素

127.0.01:6379> SMEMBERS set5
1) "two"
2) "three"
127.0.01:6379> SRANDMEMBER set5
"three"
127.0.01:6379> SRANDMEMBER set5
"three"
127.0.01:6379> SRANDMEMBER set5
"three"
127.0.01:6379> SRANDMEMBER set5
"two"

redis数据类型:sets的更多相关文章

  1. Redis数据类型:Sorted Sets操作指令

    Redis数据类型:Sorted Sets操作指令 Sorted Sets常用操作指令 Sorted Sets,本质是一个有序的Sets,其实在原来的Sets集合中对每一个元素新增了一个属性Score ...

  2. redis数据类型及使用场景

    Redis数据类型  String: Strings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字. 常用命令:  set,get,decr,incr,mge ...

  3. 深入理解redis数据类型

    转载请注明出处:https://www.cnblogs.com/wenjunwei/p/9720033.html redis的存储模型 redis不是普通的键值对存储,它实际上是一个数据结构存储服务器 ...

  4. Redis数据类型和常用命令

    Redis相较于其它的数据库虽然简单,但是要熟记所有命令的用法也并非易事.一个简单的技巧是通过要操作的数据类型来将这些命令进行结构化. 数据类型和对应命令 所有存储于redis中的数据都对应于一个键值 ...

  5. redis数据类型及订阅操作

    Redis数据类型详解 Redis键/值介绍 Redis key值是二进制安全的,这意味着可以用任何二进制序列作为key值,从形如“foo”的简单字符串到一个JPG文件的内容都可以.空字符串也是有效k ...

  6. Redis数据类型简介(十分钟快速学习Redis)

    如何在ubuntu18.04上安装和保护redis 如何连接到Redis数据库 如何管理Redis数据库和Keys 如何在Redis中管理副本和客户端 如何在Redis中管理字符串 如何在Redis中 ...

  7. Redis入门到放弃系列-redis数据类型

    Redis数据类型? Redis 提供一些常用的数据类型:Strings.Lists.Sets.Sorted sets.Hashes.Arrays.Bitmap.Streams Strings(字符串 ...

  8. 初识redis数据类型

    初识redis数据类型 1.String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据 ...

  9. Redis数据类型介绍

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

  10. redis数据类型

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

随机推荐

  1. assert的基本用法

    assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制,如C,C++和Eiffel等,但是支持的形式不尽相同,有的是通过语言本身.有的是通过库函数等.另外,从理论上来 ...

  2. 分布式存储 CentOS6.5虚拟机环境搭建FastDFS-5.0.5集群(转载-2)

    原文:http://www.cnblogs.com/PurpleDream/p/4510279.html 分布式存储 CentOS6.5虚拟机环境搭建FastDFS-5.0.5集群 前言:       ...

  3. js数组操作-数组去重

    第一个和第二个,都是对新数组或新json进行操作,而第三个是对原数组本身进行indexOf.第一个是用新数组的indexOf来判断是否有重复元素,而第二个是通过nHash[item]来判断是否存在. ...

  4. google 技巧

    inurl: 用于搜索网页上包含的URL. 这个语法对寻找网页上的搜索,帮助之类的很有用. intext: 只搜索网页部分中包含的文字(也就是忽略了标题,URL等的文字). site: 可以限制你搜索 ...

  5. es5 中类的2种基本实现方法

    function test(){ this.a = 1; this.func = function(){ // var a = 3;下面的this 取的是上面的1,这个不影响 return this. ...

  6. PL SQL Developer报错框乱码

    在系统变量里设置 变量名:NLS_LANG 变量值设为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK

  7. 字符串---分割成数组(str_split ),算出一个字符串中出现最多的字符, 学校中最多的姓名

    split 分割separate分开 little 小的 echo '<meta http-equiv="Content-type" content="text/h ...

  8. python 命名规范

    参考Google开源项目风格指南:https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/cont ...

  9. Conversion to Dalvik format failed with error 1(android)

    1.如果不修改android sdk版本,则使用project clean 命令作用于某工程即可. (该处理方式只是在高版本中兼容了低版本工程,未真正意义上的升级) 2.如果修改android sdk ...

  10. css margin相关问题及应用

    一.margin常见问题 1.IE6下双边距问题 margin双布局可以说是IE6下经典的bug之一.产生的条件是:block元素+浮动+margin. 2.maring重叠的问题 css2.0规范对 ...