• Redis五大数据类型——Zset(有序集合)


    Redis五大数据类型——Zset(有序集合)

    在set的基础上,增加了一个值,例如:

    • set的用法是,set k1 v1,
    • 而zset则是,zset k1 score1 v1,而这里的score就是用来排序

    总结就是,新增字段的时候加一个标志

    ZADD key [NX|XX] [CH] [INCR] score member [score member ...]
    
    127.0.0.1:6379> ZADD zset 1 v1
    (integer) 1
    127.0.0.1:6379> ZADD zset 2 v2 3 v3
    (integer) 2
    127.0.0.1:6379> ZRANGE zset 0 -1		# ZRANGE key start stop [WITHSCORES]
    1) "v1"									# 查看指定的key中,start到stop这个闭区间的所有值
    2) "v2"
    3) "v3"
    127.0.0.1:6379> ZADD zset 0 v0			# 插入一个0
    (integer) 1
    127.0.0.1:6379> ZRANGE zset 0 -1		# 可以看到,0对应的值排在了第一位
    1) "v0"
    2) "v1"
    3) "v2"
    4) "v3"
    
    # ===========
    # ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
    127.0.0.1:6379> ZRANGEBYSCORE zset 1 2			# 指定范围内的所有值
    1) "v1"
    2) "v2"
    127.0.0.1:6379> ZRANGEBYSCORE zset -inf +inf	# 负无穷到正无穷
    1) "v0"
    2) "v1"
    3) "v2"
    4) "v3"
    127.0.0.1:6379> ZRANGEBYSCORE zset -inf +inf withscores # 指定区间的值,并且打印范围内具体的值
    1) "v0"
    2) "0"
    3) "v1"
    4) "1"
    5) "v2"
    6) "2"
    7) "v3"
    8) "3"
    
    # ===========
    # ZREM key member [member ...]
    127.0.0.1:6379> zadd zset 10 v1 30 v3 80 v4
    (integer) 3
    127.0.0.1:6379> ZREM zset v3
    (integer) 1
    127.0.0.1:6379> ZRANGE zset 0 -1
    1) "v1"
    2) "v4"
    127.0.0.1:6379> ZRANGE zset 0 -1 withscores	# 打印具体的"score"
    1) "v1"
    2) "10"
    3) "v4"
    4) "80"
    127.0.0.1:6379> ZCARD zset			# 查看zset中集合的个数
    (integer) 2
    127.0.0.1:6379> ZREVRANGE zset 0 -1	# 以降序查看指定区间的元素
    1) "v4"
    2) "v1"
    # ===========
    127.0.0.1:6379> ZADD zset 10 v1 20 v2 30 v3
    (integer) 3
    127.0.0.1:6379> ZCOUNT zset 10 30	# 获取指定闭区间的元素的数量
    (integer) 3
    

    其余的一些API和函数,可以通过redis官网进行查看。

    案例思路:

    • 和set相比,zset是有序,多了排序

    • top N

      • 存储班级成绩,微博热搜,积分排名等

        将积分等加入zset,定时(比如每分钟)刷新zset

    • 带权重判断:

      • 普通事件:标志为1
      • 重要事件:标志为2
      • 紧急事件:标志为3
  • 相关阅读:
    HTTP——Web服务器、代理、缓存
    nginx配置文件详解2
    nginx配置文件详解
    shell笔记2
    django笔记
    python 发请求,urllib,urllib2
    nginx配置
    python os模块学习
    mac 终端命令小结
    mac常用命令笔记
  • 原文地址:https://www.cnblogs.com/liuhuan086/p/13581911.html
Copyright © 2020-2023  润新知