Redis集合的常用操作指令

Sets常用操作指令

SADD

将指定的元素添加到集合。如果集合中存在该元素,则忽略。 如果集合不存在,会先创建一个集合然后在添加元素。

127.0.0.1:6379> SADD myset name age city
(integer) 3
127.0.0.1:6379> SADD myset name
(integer) 0

SMEMBERS

# 查看集合
127.0.0.1:6379> SMEMBERS myset
1) "name"
2) "city"
3) "age"

SCARD

# 统计集合中的元素个数
127.0.0.1:6379> SCARD myset
(integer) 3
# 集合不存在 则返回0
127.0.0.1:6379> SCARD mysetnotexist
(integer) 0

SDIFF

将第一个集合与后面的集合进行比较,取出第一个集合中不在后面的集合中存在的元素。

127.0.0.1:6379> SADD myset name age city
(integer) 3
127.0.0.1:6379> SADD compareset name city country
(integer) 3
127.0.0.1:6379> SDIFF myset compareset
1) "age"
# 没有差值,则返回空集合
127.0.0.1:6379> SADD compareset age
(integer) 1
127.0.0.1:6379> SDIFF myset compareset mysetnew
(empty list or set)

SDIFFSTORE

与SDIFF一样,也是返回集合中元素的差值,不同的这个方法不返回结果集合,而是将差值存储到目标集合,如果目标集合存在其他元素,会被完全替换。

127.0.0.1:6379> SADD seta a b c
(integer) 3
127.0.0.1:6379> SADD setb c d e
(integer) 3
127.0.0.1:6379> sadd setc f
(integer) 1
# SDIFFSTORE 存储的目标结合 比较集合a和b
127.0.0.1:6379> SDIFFSTORE setc seta setb
(integer) 2
127.0.0.1:6379> SMEMBERS setc
1) "a"
2) "b"

SINTER

取集合之间的交集。

127.0.0.1:6379> SADD seta a b c
(integer) 3
127.0.0.1:6379> SADD setb c d e
(integer) 3
127.0.0.1:6379> sadd setc f
(integer) 1
127.0.0.1:6379> SINTER seta setb
1) "c"

SINTERSTORE

与SINTER一样,也是返回集合中元素的交集,不同的这个方法不返回结果集合,而是将交集存储到目标集合,如果目标集合存在其他元素,会被完全替换。

127.0.0.1:6379> SADD seta a b c
(integer) 3
127.0.0.1:6379> SADD setb c d e
(integer) 3
127.0.0.1:6379> sadd setc f
(integer) 1
127.0.0.1:6379> SINTERSTORE setc seta setb
(integer) 1
127.0.0.1:6379> SMEMBERS setc
1) "c"

SMEMBERS SISMEMBER

SMEMBERS 返回集合中的元素。

SISMEMBER 判断集合是是否存在元素。

# SMEMBERS
127.0.0.1:6379> SADD seta a b c
(integer) 3
127.0.0.1:6379> SMEMBERS seta
1) "c"
2) "a"
3) "b" # SISMEMBER 判断元素 存在返回1 不存在返回0
127.0.0.1:6379> SISMEMBER seta d
(integer) 0
127.0.0.1:6379> SISMEMBER seta a
(integer) 1

SMOVE

从原集合向目标集合移动元素。

#  SMOVE 移动元素
127.0.0.1:6379> SMOVE seta setb a
(integer) 1
# 移动元素后 目标集合多了一个元素
127.0.0.1:6379> SMEMBERS setb
1) "d"
2) "c"
3) "a"
4) "e"
# 移动元素后 原集合少了一个元素
127.0.0.1:6379> SMEMBERS seta
1) "c"
2) "b"

SPOP

移除指定位置的元素。

127.0.0.1:6379> SPOP setb 1
1) "d"
127.0.0.1:6379> SMEMBERS setb
1) "c"
2) "a"
3) "e"

SRANDMEMBER

随机返回元素,不修改源集合。

127.0.0.1:6379> SMEMBERS setb
1) "c"
2) "a"
3) "e"
127.0.0.1:6379> SRANDMEMBER setb 1
1) "a"
127.0.0.1:6379> SRANDMEMBER setb 1
1) "c"

SREM

删除指定元素,如果元素不存在或者集合为空,则返回0,成功则返回1。

127.0.0.1:6379> SMEMBERS setb
1) "c"
2) "a"
3) "e"
# SREM
127.0.0.1:6379> SREM set "c"
(integer) 0
127.0.0.1:6379> SREM setb c
(integer) 1

SUNION

返回集合的并集。

127.0.0.1:6379> sadd numaset 1 3
(integer) 2
127.0.0.1:6379> SADD numbset 2 3 4
(integer) 3
# SUNION 返回集合并集
127.0.0.1:6379> SUNION numaset numbset
1) "1"
2) "2"
3) "3"
4) "4"

SUNIONSTORE

返回集合并集并存到指定集合中。

127.0.0.1:6379> sadd numaset 1 3
(integer) 2
127.0.0.1:6379> SADD numbset 2 3 4
(integer) 3
127.0.0.1:6379> sadd numcset 6 7
(integer) 2
# SUNION 返回集合并集 导致指定集合并替换指定集合的元素
127.0.0.1:6379> SUNIONSTORE numcset numaset numbset
(integer) 4
127.0.0.1:6379> SMEMBERS numcset
1) "1"
2) "2"
3) "3"
4) "4"

SSCAN

该命令用于迭代集合键中的元素。一般Set里面的元素量不大时,使用SMEMBER就行,但是如果Set里面的元素较多,就不能再使用了,命令会阻塞住,所以这个时候就需要SSCAN了。

127.0.0.1:6379> SADD provset hunan hubei beijing
(integer) 3
# SSCAN 0是表示查询游标,如果返回不是0,则表明迭代没有结束。
127.0.0.1:6379> SSCAN provset 0 match *b*
1) "0"
2) 1) "beijing"
2) "hubei"

以上就是Redis中结合的是常用操作指令了,更多其他指令可以参考官网,Redis官网,谢谢阅读,希望对你有所帮助。

Redis集合的常用操作指令的更多相关文章

  1. Redis数据类型Strings、Lists常用操作指令

    Redis数据类型Strings.Lists常用操作指令 Strings常用操作指令 GET.SET相关操作 # GET 获取键值对 127.0.0.1:6379> get name (nil) ...

  2. 第三百节,python操作redis缓存-其他常用操作,用于操作redis里的数据name,不论什么数据类型

    python操作redis缓存-其他常用操作,用于操作redis里的数据name,不论什么数据类型 delete(*names)根据删除redis中的任意数据类型 #!/usr/bin/env pyt ...

  3. linux常用操作指令

    Linux常用操作指令: 常用指令 ls        显示文件或目录 -l           列出文件详细信息l(list) -a          列出当前目录下所有文件及目录,包括隐藏的a(a ...

  4. [PY3]——内置数据结构(6)——集合及其常用操作

    集合及其常用操作Xmind图          集合的定义 # set( ) # {0,1,2} //注意不能用空的大括号来定义集合 # set(可迭代对象) In [1]: s=set();type ...

  5. redis的keys常用操作及redis的特性

    redis的keys常用操作 1.获得所有的keys: keys * 2.可以模糊查询 keys:keys  my* 3.删除keys:del mymkey1 mykey2 4.是否存在keys:ex ...

  6. CentOS + Nginx 的常用操作指令总结

    CentOS + Nginx 的常用操作指令总结 一. 关于CentOS 查看 yum 源是否存在 yum list | grep nginx 如果不存在 或者 不是自己想要的版本 可以自己设置Ngi ...

  7. git 详细教程和常用操作指令

    git 内部工作原理图 如上图,git 一般可以分为三个区:工作区.暂存区.版本库,通常类似 git add等命令都是与index 暂存区的交互,git commit指令则是 index 与版本库的交 ...

  8. Python集合的常用操作

    字典常用的就是,他的去重. set集合是python的一个基本数据类型. set中的元素是不重复的.⽆无序的.⾥面的元素必须是可hash的(int, str, tuple,bool). 我们可以这样来 ...

  9. Redis string类型常用操作

      Redis 有 string.list.set.zset.hash数据类型.string类型是最基础的,其他类型都是在string类型上去建立的,所以了解熟悉string类型的常用操作对于学习re ...

随机推荐

  1. Django【第7篇】:Django之ORM跨表操作(聚合查询,分组查询,F和Q查询等)

    django之跨表查询及添加记录 一:创建表 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many); ...

  2. web测试方法小结----以便于测试用例

    今天在整理电脑的时候,发现一些之前总结过得web 测试的一些方法,以便于写测试用例.现在整理一下,就当复习一下软件测试基础. 一.输入框 1.字符型输入框: (1)字符型输入框:英文全角.英文半角.数 ...

  3. H5 FormData对象

    FormData对象 2018年01月08日 14:31:53 阅读数:2635 FormData对象,可以把所有表单元素的name与value组成一个queryString,提交到后台. 在使用aj ...

  4. PageOffice修改注册码升级版本

    java: 删除pageoffice.jar所在目录(一般是WEB-INF/lib)下的license.lic文件(若服务器运行时找不到该文件,可在浏览器地址栏里面通过localhost方式访问pos ...

  5. 岭回归、lasso

    参考:https://blog.csdn.net/Byron309/article/details/77716127     ----    https://blog.csdn.net/xbinwor ...

  6. twint 安装及使用

    分享这个post是自己方便查,还有中文网界对这个东西介绍太少. 更多的就看github项目twint吧. Installation: git+pip3: git clone https://githu ...

  7. 【bozj2287】【[POJ Challenge]消失之物】维护多值递推

    (上不了p站我要死了) Description ftiasch 有 N 个物品, 体积分别是 W1, W2, -, WN. 由于她的疏忽, 第 i 个物品丢失了. "要使用剩下的 N - 1 ...

  8. 封装Qt的SQLite接口类

    还没测试完善.. #ifndef SQLITE_H #define SQLITE_H #include <QSqlDatabase> #include <QSqlQuery> ...

  9. vue.js条件渲染 v-if else-if v-for

    v-if: 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: {{#if ok}} <!-- Handlebars 模板 --> <h1>Yes</ ...

  10. 微信小程序支付 java

    原文:https://blog.csdn.net/zhourenfei17/article/details/77765585 话不多说,直接开撸. 支付流程步骤: 1)首先调用wx.login方法获取 ...