redis ZSet php,redis中zset怎么使用
Redis中zset是set的一个升级版本,他在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解了有两列的mysql表,一列存value,一列存顺序。操作中key理解为zset的名字。
使用有序集合(zset),你可以非常快地(O(log(N)))完成添加,删除和更新元素的操作。 因为元素是在插入时就排好序的,所以很快地通过评分(score)或者 位次(position)获得一个范围的元素。 访问有序集合的中间元素同样也是非常快的,因此你可以使用有序集合作为一个没用重复成员的智能列表。 在这个列表中, 你可以轻易地访问任何你需要的东西: 有序的元素,快速的存在性测试,快速访问集合中间元素!(推荐学习:Redis视频教程)
简而言之,使用有序集合你可以很好地完成 很多在其他数据库中难以实现的任务。
at first,我们先添加一下数据:> zadd member_list 10 a 3 b 1 c 4 d 7 e
(integer) 5
#返回5,即成功加了5个进入集合。现在试试添加重复的元素
> zadd member_list 9 a 8 f
(integer) 1
#这个步骤,返回了1,而不是2,是因为a这个元素已经存在于集合当中了,不会添加成功。
> zrange member_list 0 6 WITHSCORES
1) "c"
2) 1.0
3) "b"
4) 3.0
5) "d"
6) 4.0
7) "e"
8) 7.0
9) "f"
10) 8.0
11) "a"
12) 9.0
可以看到,有序集合排序的规则是根据分母的大小,分母越小排在集合的前面
可以用于一个大型在线游戏的积分排行榜。每当玩家的分数发生变化时,可以执行ZADD命令更新玩家的分数,此后再通过ZRANGE命令获取积分TOP TEN的用户信息。当然我们也可以利用ZRANK命令通过username来获取玩家的排行信息。最后我们将组合使用ZRANGE和ZRANK命令快速的获取和某个玩家积分相近的其他用户的信息。
Sorted-Sets类型还可用于构建索引数据。
更多Redis相关技术文章,请访问Redis数据库使用入门教程栏目进行学习!
redis ZSet php,redis中zset怎么使用相关推荐
- redis中zset底层实现原理
https://www.cnblogs.com/yuanfang0903/p/12165394.html 阅读目录 一.Zset编码的选择 二.ziplist 三.skiplist 四.skiplis ...
- Redis中ZSet的底层数据结构跳跃表skiplist,你真的了解吗?
欢迎大家关注我的微信公众号[老周聊架构],Java后端主流技术栈的原理.源码分析.架构以及各种互联网高并发.高性能.高可用的解决方案. 一.前言 老周写这篇文章的初衷是这样的,之前项目中有大量使用 R ...
- Redis初学:9(Zset类型)
Zset(有序集合)类型 简介 Redis里面的有序集合Zset和集合Set非常相似,都是一个没有重复元素的字符串集合. 不同之处是有序集合Zset里面的每个成员都关联了一个评分(score),这个s ...
- php redis 搜索,PHP+Redis有序集合(zset)实现博客园阅读排行榜功能
许多网站都有排行榜的功能,比如球员人气榜单.阅读排行榜,对于一些小网站,通过查数据库就能实现排行榜的功能,但是对于稍微有点用户量而且还是实时排名的网站,使用一些关系型数据库如(MySQL.Oracle ...
- Redis(八):Zset有序集合数据类型详解
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过分数来为集合中的成员进行从小到大的排序. 有序 ...
- Redis数据结构详解之Zset(五)
原文:Redis数据结构详解之Zset(五) 序言 Zset跟Set之间可以有并集运算,因为他们存储的数据字符串集合,不能有一样的成员出现在一个zset中,但是为什么有了set还要有zset呢?zse ...
- redis命令之set和zset的操作
redis里面常用的操作set类型(每个元素都是一个值)的命令: sadd key member1 [member2 member3 ....]:向key对应的set中添加 sinter set1 ...
- Redis源码-ZSet:Redis ZSet存储原理、Redis ZSet命令、 Redis ZSet两种存储底层编码ziplist/dict+skiplist、Redis ZSet应用场景
Redis源码-ZSet:Redis ZSet存储原理.Redis ZSet命令. Redis ZSet两种存储底层编码ziplist/dict+skiplist.Redis ZSet应用场景 Red ...
- 用 Redis 搞定游戏中的实时排行榜,附源码!
原文:segmentfault.com/a/1190000019139010 1. 前言 前段时间刚为项目(手游)实现了一个实时排行榜功能, 主要特性: 实时全服排名 可查询单个玩家排名 支持双维排序 ...
最新文章
- Python 3.8即将发布,这几个变化你必须知道
- Unity超级角色控制器研究(四)——地形检测
- matlab读int16读文件_MATLAB——文件读写(1)
- 《剑指offer》丑数
- 计算机视觉算法工程师 笔试,深度学习算法工程师笔试题目
- 关于J2SE/Jsp/Sping/Hibernate/Struts2的视频下载
- oracle中时间加减一年的写法
- python分支结构说课_Python_3.8平台上的分支结构(模块.类.函数)_11
- 11届蓝桥杯青少年组C++全国赛高级组 六.编程实现:求阶乘(python3实现)
- 如何用Pygame写游戏(二十二)
- hbuilderx制作简单网页_简单的手机网页制作教程
- ethtool源码分析
- Datawhale 零基础入门CV赛事-Task2 数据读取与数据扩增
- ERP原理 : 第五节 销售管理的工作原理
- 阿里云ace考试有什么用?想要通过需要掌握哪些方面知识?
- 如何为IT部门制定更好的战略计划
- Vue开发实例(11)之el-menu实现左侧菜单导航
- 微信美团服务器开小差,“美团无法使用微信支付”耽误大家干饭,客服:异常已经解决...
- Android程序员必看,资深Android面试题
- 明星艺人宣传推广的有效方案有哪些呢?