**Redis数据类型:zset(sorted set )**
zset是Redis中最具有特色的数据结构(跳跃列表),首先它有set不可重复的特性,在这个基础上,还可以给value赋予一个排序权重score,所谓的有序其实就是根据这个得分来排序。排序的set,可以去重还可以排序,写进去的时候给一个分数,自动根据根据分数排序,分数可以自定义排序规则。
Redis 有序集合zset和集合set一样也是String类型元素的集合,且不允许重复的成员。不同的是 zset 的每个元素都会关联一个分数(分数可以重复),redis 通过分数来为集合中的成员进行从小到大的排序。Redis的zset天生是用来做排行榜的,榜单,总榜,热榜。
**1.1、排行榜**
用户发布了n篇文章,其他人看到文章后给喜欢的文章点赞,使用score来记录点赞数,有序集合会根据score排行。流程如下:
用户发布一篇文章a,初始点赞数为0,即score为0
```bash
zadd user:article 0 a
```
有人给文章a点赞,递增1
```bash
zincrby user:article 1 a
```
查询点赞前三篇文章
```bash
zrevrangebyscore user:article 0 2
```
查询点赞后三篇文章
```bash
zrangebyscore user:article 0 2
```
**1.2、实时排名**
与排行榜类似,但每个元素的分数随时会变化。可以将用户的 ID 和分数存储在 Redis 的 Zset 类型中,然后通过 ZINCRBY 命令更新用户的分数,通过 ZRANK 命令获取用户的排名,从而实现实时排名的功能。
**1.3、时间序列**
可以将事件的时间戳和内容以键值对的形式存储在 Redis 的 Zset 类型中,然后可以通过 ZADD 命令将事件添加到有序集合中,通过 ZRANGEBYSCORE 命令获取指定时间范围内的事件,从而实现时间序列的功能。
- Redis介绍
- String类型的应用场景
- Hash类型的应用场景
- List类型应用场景
- Set类型应用场景
- Zset类型应用场景
- Redis官网
- 安装Redis
- Redis配置文件详解
- 配置Redis开机启动
- Redis的命令行工具
- Redis的可视化管理软件
- 各开发语言对应的Redis库
- Server管理命令
- 通用命令
- String类型命令
- HASH类型命令
- LIST类型命令
- Set类型命令
- Sorted_Set类型命令
- ThinkPHP集成Redis
- SpringBoot集成Redis
- 实战篇:优惠券功能概述
- 实战篇:表单页面实现
- 实战篇:后端处理逻辑
- 实战篇:优惠券类逻辑
- 实战篇:优惠券列表
- 原理篇:Redis缓存雪崩
- 原理篇:Redis缓存击穿
- 原理篇:Redis缓存穿透
- 进阶篇:Redis的事务与持久化
- 进阶篇:Redis集群
- 进阶篇:Redis的发布订阅模式
- 进阶篇:Redis分布式锁
- 进阶篇:Redis分布式缓存
- 进阶篇:一致性哈希
- 进阶篇:Redis安全管理
- 进阶篇:Redis性能优化