5分钟带你了解Redis 5.0新功能 内含重量级特性解读

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis是目前最流行的KV缓存数据库,它简单易用,安全稳定,在互联网行业有着非常广泛的应用。

640.gif

Redis 5.0最新特点

Redis是目前最流行的KV缓存数据库,它简单易用,安全稳定,在互联网行业有着非常广泛的应用。Redis 5.0版是Redis的重大版本发布,我们先看一下它的最新特点:

  1. 新的流数据类型(Stream data type)
  2. 新的 Redis 模块 API:定时器、集群和字典 API(Timers, Cluster and Dictionary APIs)
    3.RDB 增加 LFU 和 LRU 信息

4.集群管理器从 Ruby (redis-trib.rb) 移植到了redis-cli 中的 C 语言代码
5.新的有序集合(sorted set)命令:ZPOPMIN/MAX 和阻塞变体(blocking variants)
6.升级 Active defragmentation 至 v2 版本
7.增强 HyperLogLog 的实现
8.更好的内存统计报告
19.许多包含子命令的命令现在都有一个 HELP 子命令
10.客户端频繁连接和断开连接时,性能表现更好
11.许多错误修复和其他方面的改进
12.升级 Jemalloc 至 5.1 版本
13.引入 CLIENT UNBLOCK 和 CLIENT ID
14.新增 LOLWUT 命令
15在不存在需要保持向后兼容性的地方,弃用 "slave" 术语
16.网络层中的差异优化
17.Lua 相关的改进
18.引入动态的 HZ(Dynamic HZ) 以平衡空闲 CPU 使用率和响应性
19.对 Redis 核心代码进行了重构并在许多方面进行了改进

重量级特性——Stream

Redis Stream本质上是个时序数据结构,具有如下特点:

1.每条记录是结构化、可扩展的对
2.每条记录在日志中有唯一标识,标识中包含了时间戳信息,单调递增
3.可以根据需要自动清理历史记录
4.保存在内存中,支持持久化
底层是修改版的radix tree,每个node存储了一个listpack。listpack是一块连续的内存block,用于序列化msg entry及相关元信息,如msg ID,使用了多种编码,用于节省内存,是ziplist的升级版。如果XADD每次添加的对中的field是一样的,那么field不会重复存储。

image.png

内存友好,对于简单的十几~几十字节的msg,100MB内存可以存储数百万个。listpack在内存和disk上的存储结构是一样的,所以stream数据在做RDB时效率非常高,0.3s,500w entries。

Redis Stream使用演示

image.png

发布消息
image.png

读取消息
image.png

阻塞读取
image.png

发布新消息
image.png

消息返回

image.png

创建消费组

image.png

通过消费组读取消息

image.png

Redis Stream使用场景

可用作时通信等,大数据分析,异地数据备份

image.png

客户端可以平滑扩展,提高处理能力
image.png

Zpop

  • Sorted Sets 增加了类似List的pop命令:
  • ZPOPMAX 命令用于移除并弹出有序集合中分值最大的 count 个元素
  • ZPOPMIN 命令用于移除并弹出有序集合中分值最小的 count 个元素
  • BZPOPMAX 和 BZPOPMIN 是上述两个命令的阻塞变种

image.png

CLIENT:

Client id返回当前连接的ID,每个ID符合如下约束:

1.永不重复,可以判断当前链接是否断链过
2.单调递增,可以判断不同链接的接入顺序

Client unblock:

当客户端因为执行具有阻塞功能的命令(如BRPOP、XREAD或者WAIT)被阻塞时,该命令可以通过其他连接解除客户端的阻塞

image.png

阿里云Redis 5.0优势

新增的stream数据结构,丰富的应用场景和想象空间
内核的改进和bugfix,使用更健壮
支持账号体系,根据账号用途赋予相应的权限,更加安全
审计日志,记录了读写操作、敏感操作(keys、flushall等)、慢日志、管理类命令,供用户查询
大key分析,基于快照的完整内存分析,更准确,直接输出内存消耗top排行的key
支持单机和集群版的平滑迁移

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
9月前
|
NoSQL 安全 Redis
Redis6.0新特性——ACL(权限控制列表)实现限制用户可执行命令和KEY
Redis6.0新特性——ACL(权限控制列表)实现限制用户可执行命令和KEY
132 0
|
存储 运维 NoSQL
Redis7.0 核心特性简介
Redis自 2009 年诞生以来,已经走过了 13 年。在这漫长的 13 年中,Redis 从小小的开源项目逐步演变成为当今最受欢迎的内存数据库之一,被用于多种场景,帮助解决很多问题
3652 0
Redis7.0 核心特性简介
|
3月前
|
缓存 NoSQL 安全
Redis 新特性篇:多线程模型解读
Redis 新特性篇:多线程模型解读
49 5
|
3月前
|
存储 NoSQL 关系型数据库
Redis协议与异步方式(redis网络层、pipeline、事务、lua脚本、ACID特性、发布订阅、hiredis实现同步连接与异步连接)
Redis协议与异步方式(redis网络层、pipeline、事务、lua脚本、ACID特性、发布订阅、hiredis实现同步连接与异步连接)
68 0
|
4月前
|
消息中间件 存储 缓存
Redis之初识特性
Redis之初识特性
27 0
|
4月前
|
缓存 NoSQL API
【Redis】Redis6.0 新功能
【Redis】Redis6.0 新功能
44 0
【Redis】Redis6.0 新功能
|
5月前
|
存储 缓存 NoSQL
深入挖掘Redis的特性和用途
当谈到高性能缓存和内存数据库时,Redis通常是首选。它有很多独特的功能和用途,比如数据类型、Pub/Sub、Lua脚本等。在这篇博客中,我们将深入挖掘 Redis 的特性和用途,并分享一些实际应用场景。
39 0
|
5月前
|
存储 NoSQL 关系型数据库
redis协议与异步方式(redis网络层、pipeline、事务、lua脚本、ACID特性、发布订阅、hiredis实现同步连接与异步连接)
redis协议与异步方式(redis网络层、pipeline、事务、lua脚本、ACID特性、发布订阅、hiredis实现同步连接与异步连接)
89 0
|
6月前
|
存储 移动开发 NoSQL
Redis到底是什么?都有哪些特性?看完这一篇就都会了
Redis到底是什么?都有哪些特性?看完这一篇就都会了
141 1
|
6月前
|
NoSQL 关系型数据库 MySQL
21Redis - 多数据库特性
21Redis - 多数据库特性
23 0

热门文章

最新文章