zoukankan      html  css  js  c++  java
  • Redis Zset 有序集合

    Redis - Zset 有序集合

    1、有序集合Zset和普通的集合很相似,每个值没有重复数据,每个值是有顺序的,这就是和set的最大区别

    2、常用操作命令:

    1)zadd <key> <score1> <value1> <score2> <value2>
    给键名为 key 的有序集合中添加一个value值和它的score值(顺序?)
    value值是真实存放的数据,score只是一个校验顺序的值,通过这个score值来进行排序
    
    2)zrange <key> start end [withscores]:
    从键名为 key 的Zset中取值,范围是 start到end,0 -1 表示取出所有值
    如果带上 withscores,会将score一起获取到
    	
    3)zrangebyscore <key> min max [withscores] [limit offset count]
    返回键名为key的Zset中,所有score介于 min和max之间的数据(包含min、max)
    还可以限定取值的个数
    取出的值从小到大排序
    			
    4)zrevrangebyscore <key> min max [withscores] [limit offset count]
    和上一个操作类似,取出的值是从大到小排序
    
    5)zincrby <key> <number> <value>:
    给键名为key的Zset中的value的score增加number的数量,能达到修改排序的作用
    
    6)zrem <key> <value>:
    删除键名为key的Zset中的value值
    
    7)zcount <key> <min> <max>:
    统计键名为key的Zset中排序值在 min 和 max 之间的数据个数
    

    3、通过Zset有序集合设计文章的排行榜:

    数据形式:
    	key值:book_top_n
    	score值:访问数,每次访问 通过 zincrby <key> <number> <value> 进行score值+1
    	value值:书名
    	
    key	score	value
    book_top_n	50	C++从基础到实战
    book_top_n	23	Java从基础到实战
    book_top_n	13	Php从基础到实战
    

    4、Zset有序集合的数据结构
    1)hash存储
    2)跳表

    本文来自博客园,作者:alisleepy,转载请注明原文链接:https://www.cnblogs.com/alisleepy/p/15647474.html

  • 相关阅读:
    CH1301 邻值查找【set应用】
    poj1185 炮兵阵地【状压DP】
    codeforces#516 Div2---ABCD
    2017ACM-ICPC沈阳区域赛
    poj2411 Mondriaan's Dream【状压DP】
    hdu2196 Computer【树形DP】【换根法】
    poj3345 Bribing FIPA【树形DP】【背包】
    poj1463 Strategic game【树形DP】
    poj1191 棋盘分割【区间DP】【记忆化搜索】
    CH5E09 能量相连【区间DP】
  • 原文地址:https://www.cnblogs.com/alisleepy/p/15647474.html
Copyright © 2011-2022 走看看