• Redis数据类型(2)


    1.set类型:

            切换数据库:select  num

            一种无序的字符集合,功能和list相近,但是不能有重复的数据,操作在服务端完成,因此效率极高,而且也节省了大量的网络IO开销。

            无序性:集合里面数据是没顺序区分的,无序的。

            确定性:集合里面的数据个数是确定的,不能重复。

            唯一性:集合中的数据不能彼此重复。

    (1):sadd key member [member ... ]:本次操作实际插入的成员数量。

                 smembers key :查看集合中的成员。

    1. 127.0.0.1:6379> sadd k1 "Hello"
    2. (integer) 1
    3. 127.0.0.1:6379> sadd k1 "World"
    4. (integer) 1
    5. 127.0.0.1:6379> sadd k1 "World"
    6. (integer) 0
    7. 127.0.0.1:6379> smembers k1
    8. 1) "World"
    9. 2) "Hello"
    10. 127.0.0.1:6379>

    (2):scard key:获取set成员的数量,返回set中成员的数量,如果该key不存在,返回0;

    1. 127.0.0.1:6379> smembers k1
    2. 1) "World"
    3. 2) "Hello"
    4. 127.0.0.1:6379> SCARD k1
    5. (integer) 2
    6. 127.0.0.1:6379> SCARD k2
    7. (integer) 0
    8. 127.0.0.1:6379>

    (3):sismember key member:判断参数中指定成员是否已经存在与key相关联的set集合中,1表示已经存在,0表示不存在或该key本身并不存在;

    1. 127.0.0.1:6379> SISMEMBER k1 "Hello"
    2. (integer) 1
    3. 127.0.0.1:6379> SISMEMBER k1 "World"
    4. (integer) 1
    5. 127.0.0.1:6379> SMEMBERS k1
    6. 1) "World"
    7. 2) "Hello"
    8. 127.0.0.1:6379> SISMEMBER k1 "Hi"
    9. (integer) 0
    10. 127.0.0.1:6379>

    (4):spop key :随机的移除并返回set中的某一成员,由于set中元素的布局不受外部控制,因此无法像list那样确定哪个元素位于set的头部或者尾部,返回移除的成员,如果该key不存在,则返回nil。

    1. 127.0.0.1:6379> SMEMBERS k1
    2. 1) "World"
    3. 2) "Hello"
    4. 3) "a"
    5. 4) "c"
    6. 5) "d"
    7. 6) "b"
    8. 127.0.0.1:6379> SPOP k1
    9. "a"
    10. 127.0.0.1:6379> SPOP k1
    11. "d"
    12. 127.0.0.1:6379> SPOP k1
    13. "b"
    14. 127.0.0.1:6379> SPOP k1
    15. "c"
    16. 127.0.0.1:6379> SPOP k2
    17. (nil)
    18. 127.0.0.1:6379>

    (5):srem key member [member...]:从set中实际移除的成员数量,如果没有则返回0,如果该key不是一个集合类型,则返回错误,从集合里删除指定的一个或多个元素。

    1. 127.0.0.1:6379> SMEMBERS k1
    2. 1) "one"
    3. 2) "three"
    4. 3) "World"
    5. 4) "two"
    6. 5) "Hello"
    7. 127.0.0.1:6379> SREM k1 "one" "two"
    8. (integer) 2
    9. 127.0.0.1:6379> SMEMBERS k1
    10. 1) "three"
    11. 2) "World"
    12. 3) "Hello"
    13. 127.0.0.1:6379>

    (6):srandmember key [count]:从集合里面随机获取一个元素;

    1. 127.0.0.1:6379> SMEMBERS k1
    2. 1) "three"
    3. 2) "World"
    4. 3) "Hello"
    5. 127.0.0.1:6379> SRANDMEMBER k1
    6. "Hello"
    7. 127.0.0.1:6379> SRANDMEMBER k1
    8. "Hello"
    9. 127.0.0.1:6379> SRANDMEMBER k1
    10. "World"
    11. 127.0.0.1:6379> SRANDMEMBER k1
    12. "Hello"
    13. 127.0.0.1:6379> SRANDMEMBER k1
    14. "three"
    15. 127.0.0.1:6379> SRANDMEMBER k1
    16. "Hello"
    17. 127.0.0.1:6379> SRANDMEMBER k1

    (7):smove source destination member :移动集合里面的一个元素到另一个集合,如果source不存在,或者指定的元素不存在,smove命令不会执行任何的操作并且返回0,若destination中以及存在了该元素,那么smove仅会将source中的元素移除,若双方的类型不符合,返回错误。

    1. 127.0.0.1:6379>
    2. 127.0.0.1:6379> SMEMBERS k1
    3. 1) "three"
    4. 2) "World"
    5. 3) "Hello"
    6. 127.0.0.1:6379> SMEMBERS k2
    7. 1) "one"
    8. 2) "two"
    9. 127.0.0.1:6379> SMOVE k1 k2 "three"
    10. (integer) 1
    11. 127.0.0.1:6379> SMEMBERS k2
    12. 1) "one"
    13. 2) "three"
    14. 3) "two"
    15. 127.0.0.1:6379> sadd k1 "three"
    16. (integer) 1
    17. 127.0.0.1:6379> SMOVE k1 k2 "three"
    18. (integer) 1
    19. 127.0.0.1:6379> SMEMBERS k1
    20. 1) "World"
    21. 2) "Hello"
    22. 127.0.0.1:6379> SMEMBERS k2
    23. 1) "one"
    24. 2) "three"
    25. 3) "two"
    26. 127.0.0.1:6379>

    (8):sdiff key [key...]:差异结果成员的集合,获得队列不存在的集合;

            举例如下:

    1. key1 = {a,b,c,d}
    2. key2 = {c}
    3. key3 = {a,c,e}
    4. SDIFF key1 key2 key3 = {b,d}
    1. 127.0.0.1:6379> SMEMBERS key1
    2. 1) "b"
    3. 2) "a"
    4. 3) "c"
    5. 127.0.0.1:6379>
  • 相关阅读:
    PowerBI 2022年10月更新
    Flare Network,跨越互操作性三难困境
    CentOS7搭建keepalived+DRBD+NFS高可用共享存储
    【Java基础系列】基本数据类型及包装类
    JVM 彻底搞懂什么是老年代空间分配担保机制
    Leetcode第306场周赛(附数位DP总结)
    std::bind 源码分析
    10、乐趣国学—践行《弟子规》的“谨”懂得从容之道(下篇)
    [Spring MVC 8]高并发实战小Demo
    PyTorch实现苹果M1芯片GPU加速:训练速度提升7倍,性能最高提升21倍
  • 原文地址:https://blog.csdn.net/AiTTTTTT/article/details/126914281