• 缓存数据库-redis数据类型和操作(set)


    一:Redis 集合(Set)

    Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

    Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

    二:set常用操作

      1)sadd(name,values) name对应的集合中添加元素

      2)scard(name) 获取name对应的集合中元素个数

      3)sdiff(keys, *args)  在第一个name对应的集合中且不在其他name对应的集合的元素集合

      4)sdiffstore(dest, keys, *args) 获取第一个name对应的集合中且不在其他name对应的集合,再将其新加入到dest对应的集合中

      5)sinter(keys, *args) 获取多一个name对应集合的交集

      6)sinterstore(dest, keys, *args) 获取多一个name对应集合的并集,再讲其加入到dest对应的集合中

      7)sismember(name, value) 检查value是否是name对应的集合的成员

      8)smembers(name) 获取name对应的集合的所有成员

      9)smove(src, dst, value) 将某个成员从一个集合中移动到另外一个集合

      10)spop(name) 从集合的左侧(头部)移除一个成员,并将其返回

      11)srandmember(name, numbers) 从name对应的集合中随机获取 numbers 个元素

      12)srem(name, values) 在name对应的集合中删除某些值

      13)sunion(keys, *args)  获取多一个name对应的集合的并集

      14)sunionstore(dest,keys, *args) 获取多一个name对应的集合的并集,并将结果保存到dest对应的集合中

      15)sscan(name, cursor=0, match=None, count=None)

    三:示例

    [BEGIN] 2017/7/31 20:43:34
    127.0.0.1:6379[2]> select 3  选择会话窗口3
    OK
    127.0.0.1:6379[3]> sadd n1 1    在集合中增加数据
    (integer) 1 
    127.0.0.1:6379[3]> sadd n1 2
    (integer) 1
    127.0.0.1:6379[3]> sadd n1 3
    (integer) 1
    127.0.0.1:6379[3]> sadd n1 4
    (integer) 1
    127.0.0.1:6379[3]> SCARD n1   集合中有多少个元素
    (integer) 4
    127.0.0.1:6379[3]> sadd n2 3
    (integer) 1
    127.0.0.1:6379[3]> sadd n2 4
    (integer) 1
    127.0.0.1:6379[3]> sadd n2 5
    (integer) 1
    127.0.0.1:6379[3]> sadd n2 6
    (integer) 1
    127.0.0.1:6379[3]> scard n2
    (integer) 4
    127.0.0.1:6379[3]> sdiff n1 n2  两个集合的差集在n1中,不在n2中
    1) "1"
    2) "2"
    127.0.0.1:6379[3]> sdiff n3 n1 n2
    (empty list or set)
    127.0.0.1:6379[3]> SDIFFSTORE n3 n1 n2 两个集合的差集在n1中,不在n2中并保存到n3中
    (integer) 2
    127.0.0.1:6379[3]> SINTER n1 n2    交集在n1中,也在n2中
    1) "3"
    2) "4"
    127.0.0.1:6379[3]> SINTERSTORE n4 n1 n2 交集在n1中,也在n2中,并保存到n4中
    (integer) 2
    127.0.0.1:6379[3]> SISMEMBER n1 1    判断元素在不在集合中
    (integer) 1
    127.0.0.1:6379[3]> SMEMBERS n1    查看集合
    1) "1"
    2) "2"
    3) "3"
    4) "4"
    127.0.0.1:6379[3]> SMEMBERS n2
    1) "3"
    2) "4"
    3) "5"
    4) "6"
    127.0.0.1:6379[3]> SMEMBERS n3
    1) "1"
    2) "2"
    127.0.0.1:6379[3]> SMEMBERS n4
    1) "3"
    2) "4"
    127.0.0.1:6379[3]> smove n1 n2 1  把集合n1中元素1移动集合n2中
    (integer) 1
    127.0.0.1:6379[3]> SMEMBERS n1
    1) "2"
    2) "3"
    3) "4"
    127.0.0.1:6379[3]> SMEMBERS n2
    1) "1"
    2) "3"
    3) "4"
    4) "5"
    5) "6"
    127.0.0.1:6379[3]> spop n1  从集合左边移出一个元素并还回
    "2"
    127.0.0.1:6379[3]> SMEMBERS n1
    1) "3"
    2) "4"
    127.0.0.1:6379[3]> SRANDMEMBER n2 2 从集体中随即取2个
    1) "5"
    2) "6"
    127.0.0.1:6379[3]> SRANDMEMBER n2 2
    1) "5"
    2) "6"
    127.0.0.1:6379[3]> SRANDMEMBER n2 2
    1) "5"
    2) "6"
    127.0.0.1:6379[3]> SRANDMEMBER n2 2
    1) "5"
    2) "6"
    127.0.0.1:6379[3]> SREM n2 6  从集合中删除一个元素
    (integer) 1
    127.0.0.1:6379[3]> SUNION n1 n2 两个集体并集
    1) "1"
    2) "3"
    3) "4"
    4) "5"
    127.0.0.1:6379[3]> SUNION n5 n1 n2 两个集体并集,并保存到n5中
    1) "1"
    2) "3"
    3) "4"
    4) "5"
    127.0.0.1:6379[3]> SMEMBERS n5
    (empty list or set)
    127.0.0.1:6379[3]> SUNIONSTORE n5 n1 n2 两个集体并集,并保存到n5中
    (integer) 4
    127.0.0.1:6379[3]> SSCAN n5 0 match 5 1
    (error) ERR syntax error
    127.0.0.1:6379[3]> SSCAN n5 0 match 5 
    1) "0"
    2) 1) "5"
    
    [END] 2017/7/31 20:53:29

      

  • 相关阅读:
    31天重构学习笔记9. 提取接口
    31天重构学习笔记4. 降低方法
    31天重构学习笔记8. 使用委派代替继承
    31天重构学习笔记11. 使用策略类
    31天重构学习笔记12. 分解依赖
    MyCat:第八章:MyCAT In Action中文版
    HDU 2041 超级楼梯
    CSU 1487 未覆盖顶点数量
    HDU 1712 ACboy needs your help
    HDU 2034 人见人爱AB
  • 原文地址:https://www.cnblogs.com/lixiang1013/p/7258588.html
Copyright © 2020-2023  润新知