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. evpp::buffer使用

    evpp::Buffer testmsg; const char* buf123 = "12342333333333333333333333333323424324234234"; ...

  2. 闲着没事写点啥之springmvc梳理

    用户通过浏览器向服务器发送请求,请求被springmvc的前端控制器dispatcherservlet拦截. dispatcherservlet拦截到请求后,会调用handlermapping处理器映 ...

  3. postman(三):详解postman动态变量使用

    参考: Variables Dynamic variables

  4. Arduino-位操作

    读取指定位的数据 int x=bitRead(0x81,7);    //0x81从右向左依次为第0位到第15位,第2个参数为第7位的1复制给x,使x=1 把数据写到指定位 int x=13; //x ...

  5. [每日一讲] Python系列:Python概述

    Python 序章 概述 Python 是弱类型动态解释型的面向对象高级语言,其具备面向对象的三大特点:封装.继承.多态.Python 代码运行时,其有一个编译过程,通过编译器生成 .pyc 字节码 ...

  6. 【NOIP2016提高A组模拟7.17】寻找

    题目 Bob和Alice出去度蜜月,但Alice不慎走失,Bob在伤心过后,决定前去寻找Alice. 他们度蜜月的地方是一棵树,共有N个节点,Bob会使用下列DFS算法对该树进行遍历. startin ...

  7. 用idea搭建SSM框架maven项目

    打开idea,点击New - Project 找到Maven一栏,因为要搭建的SpringMvc项目,所以选择webapp模板 填写好GroupId和ArtifactId后,一步步next,最后fin ...

  8. mysql UNION操作符 语法

    mysql UNION操作符 语法 作用:用于合并两个或多个 SELECT 语句的结果集. 语法:SELECT column_name(s) FROM table_name1 UNION SELECT ...

  9. makefile filter &&filter-out

    sources := foo.c bar.c baz.s abc.h    foo: $(sources)            gcc $(filter %.c %.s,$(sources)) -o ...

  10. 软件工程 in MSRA Code Search-第二次结对编程

    重现基线模型 我们选择了 code2vec 模型进行复现.该模型由 Uri Alon 等作者于 2018 年提出. 模型思路: 从代码与普通语言相比的特殊性入手,首先,对于输入的代码段,作者考虑到尽管 ...