zoukankan      html  css  js  c++  java
  • Redis集合的常用操作指令

    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官网,谢谢阅读,希望对你有所帮助。

  • 相关阅读:
    调用组件的C++代码
    如何用C语言读写文件
    linux 常用命令总结(tsg)
    com.mysql.jdbc.MysqlDataTruncation: Data trunca...
    SpringMVC配置
    中文转换成Unicode编码 和 Unicode编码转换为中文
    在visual studio中运行C++心得
    博客园博客转至个人网站博客声明
    Seafile安装踩坑
    不要因为走得太远,而忘了自己的初心
  • 原文地址:https://www.cnblogs.com/enjoyitlife/p/11944233.html
Copyright © 2011-2022 走看看