[转帖]Redis各版本特性汇总

redis,版本,特性,汇总 · 浏览次数 : 0

小编点评

**RDB格式变更** * 在`LUA`脚本中,可以使用`BITOPS`进行长度限制检查。 * 在`CONFIG`设置中,可以使用`H/W`进行monotonic时间采样。 **TLS配置** * 在`INFO`中,可以使用`CTX_FLAGS_DENY_BLOCKING`设置禁止阻塞。 * 在`INFO`中,可以使用`repl-diskless-load`设置增加数据类型返回。 **其他配置** * 在`RDB`中,可以使用`MAXCLIENTS`和`CLUSTER_connections`设置允许连接的客户端数量。 * 在`INFO`中,可以使用`total_forks`设置跟踪所有 fork 的数量。 * 在`INFO`中,可以使用`client_recent_max_input_buffer`设置记录最近一次输入 buffer 的大小。 * 在`INFO`中,可以使用`client`设置记录各种客户端相关信息。 **其他修改** * 在`INFO`中,可以使用`CTX_FLAGS_DENY_BLOCKING`设置禁止阻塞。 * 在`INFO`中,可以使用`repl-diskless-load`设置增加数据类型返回。 * 在`RDB`中,可以使用`MAXCLIENTS`和`CLUSTER_connections`设置允许连接的客户端数量。 * 在`INFO`中,可以使用`client_recent_max_input_buffer`设置记录最近一次输入 buffer 的大小。 * 在`INFO`中,可以使用`client`设置记录各种客户端相关信息。

正文

redis4redis5redis6redis6.2
重大特性1.模块系统
2.PSYNC2
3.LFU淘汰策略
4.混合RDB-AOF持久化
5.LAZY FREE延迟释放
6.MEMORY内存分析命令
7.支持NAT/DOCKER
8.主动碎片整理



 
1.新增Stream数据类型
2.新增Redis模块API:定时器、集群和字典API
3.RDB现在存储LFU和LRU信息
4.集群管理器被从redis-trib.rb移植到redis-cli
5.第二版主动碎片整理
6.升级Jemalloc到5.1版本
1.ACL支持
2.Redis现在支持所有通道的SSL
3.支持新协议RESP3
4.服务器端支持的客户端键值缓存
5.IO多线程处理
6.副本实例支持无磁盘复制
7.Redis集群代理
8.Redis的Disque模块
小特性1.RDB支持64位长度
2.SWAPDB无延迟替换同实例下两数据库
3.改进Redis哈希表实现
4.安全改进,映射POST和Host:命令到QUIT命令,以防止跨协议脚本攻击
5.RPUSHX和LPUSHX现在可以接受元素数量的变量
6.重构Redis的许多核心部分
1.Sorted Set新增ZPOPMIN/MAX和阻塞版本命令
2.HyperLogLog实现改进
3.内存报告优化
4.一些带子命令的命令增加了HELP子命令
5.在客户端连接和断开频繁的情况提供更好的性能。
6.很多bug修复和其他随机改进
7.新增CLIENT UNBLOCK和CLIENT ID命令
8.增加LOLWUT命令(快速生成一些图形的与技术使用无关的有趣命令)
9.网络层改进
10.LUA改进
11.动态HZ来调整空闲CPU使用率和响应速度
12.Redis核心被重构和改进了许多方面

 

1.模块系统提供了一些新的API,允许模块作者使用新的功能。
2.可以存储任意模块私有数据到RDB文件
3.Redis-benchmark支持Redis Cluster模式
4.SRANDMEMBER等命令提供更好的取值分布
5.Redis-cli提升
6.Systemd支持被重写了
1. 导出和载入数据的安全性: 防止损坏数据导致崩溃。有标记来开启 全量 O(N)校验(默认是关闭的)
2. Pub/Sub频道支持 ACL规则
3. Sentinel模式支持 ACL
4. 同时支持从标准输入流和配置文件获取配置,可以避免密钥存储到磁盘上。
5. 新增 SMISMEMBER命令批量检查成员。
6. 新增 ZMSCORE命令返回分数数组
7. 新增 LMOVE 和 BLMOVE命令来任意存取元素
8. 新增 RESET 命令重置客户端连接状态
9. 新增 COPY 命令复制键
10. 新增 ZDIFF 和 ZDIFFSTORE 命令
11. 新增 ZINTER 和 ZUNION 命令
12. 新增 GEOSEARCH/GEOSEARCHSTORE 命令用于绑定矩形查询
13. 新增 GET 命令的参数到 SET 命令,以实现更强大的 GETSET
14. 新增 XPENDING 命令的独占范围查询
15. 新增 X[REV]RANGE 命令的独占范围查询
16. 新增 ZADD 命令的 GT 和 LT 选项以实现条件分数更新
17. 新增 CLIENT INFO 和 CLIENT LIST 命令用于指定 id
18. 新增 IDLE 参数到 XPENDING 命令
19. 新增本地地址到 CLIENT LIST,并且添加 CLIENT KILL 筛选器
20. 新增 NOMKSTREAM 参数到 XADD 命令
21. 新增 introduction命令到Sentinel实例
22. 新增 SENTINEL MYID 子命令
23. redis-cli RESP3协议推送支持
24. redis-cli cluster集群导入支持源和目标支持密码
25. redis-cli URIs 除密码外还可以提供用户名
26. redis-cli/redis-benchmark支持指定首选密码
27. redis-cli 增加 -e选项来在命令执行失败退出时返回的代码
不向后兼容的更改/行为变更1.Redis Cluster 总线协议4.0不再兼容Redis 3.2
2.集群CLUSTER NODES命令输出带总线端口信息
3.可写的slave节点不会传播写入到他的下级slave节点
4.RDB格式变了,旧版本不能读取新版本RDB数据
5.日志格式及句子变化 
6.GEODIST、GEOPOS和GEOHASH对于不存在的键的返回值变了
7.SLOWLOG命令条目新增客户端地址和名称字段
1.RDB格式变化
2.日志格式及句子变化
3.LUA脚本只会根据它们的效果进行复制,而不是发送EVAL/EVALSHA到从节点或AOF日志本身
SPOP <count> 命令在key不存在的时候,不回返回null了,现在它返回空集合,并且参数是0时,也返回空集合1. EXISTS不会改变Key的LRU信息(#8016)
2. OBJECT不会暴露逻辑过期的键(#8016)
3. 提升SELECT和MOVE命令的数据库id的检查范围,调整了数据库索引错误返回的错误信息
4. 调整 AUTH / HELLO 的错误信息,修改了用户不存在或用户被禁用后的错误信息提示
5. BITOPS 长度限制为proto_max_bulk_len而不是512MB(#8096)
6. GEORADIUS[BYMEMBER] 出现内存超限的情况可以失败返回-OOM。
7. 选择性地(默认)失败启动,如果请求的绑定地址不可用(#7936)
8. 限制主db字典扩展以防止键退出(#7954)
9. CONFIG REWRITE是原子的和安全的,但是需要写入配置文件的文件夹(#7824,#8051)
10. 增加一个增量eviction机制,减少eviction峰值的延迟(#7653)
11. 当Redis使用命令行参数启动时,不重置“save”配置(#7092)
12. 在您使用命令行参数启动时,如果未“save”的配置,现在默认的“save”配置将被启用。
13. 在实例Loading时会更新INFO命令的内存指标(#7690)
14. 当“supervised”配置启用时,它优先于“daemonize”。(#8036)
15. 断言和panic,打印crash日志而不生成SIGSEGV(#7585)
16. 在SIGABRT时增加崩溃日志报告,而不是静默退出。
17. 如果启用了THP (大页配置)则禁用。
bug修复1. 处理输出缓冲区限制的模块阻塞客户端(#8141)
2. 修复setproctitle(设置进程名称python操作)相关的崩溃。(#8150,#8088)
3. 一个模块执行RM_Call操作时可能导致副本实例嵌套MULTI(#8097)
4. 在repl-diskless-load=swapdb时,将备份/还原集群模式的键到槽的映射#8108)
5. 修复oom-score-adj-values范围,以及在配置文件中使用时出现的bug(#8046)
6. 当清空的数据库时重置平均ttl(#8106)
7. 禁用rehash,当Redis有子进程时(#8007)
8. 进一步改进了用于选择类别的ACL算法
9. 修复GIL模块过早释放的问题
10. 修复了无FirstKey的模块命令的集群重定向(#7539)
11. 降低在key移除时对客户端的反馈环节的影响。
12. 当所有的副本丢弃并且“save”没有启用时,磁盘基础的fork子进程将被杀死(#7819)
13. 重写的命令被记录为它的原始命令(#8006)
14. 修复集群访问不对齐内存问题(旧的ARM架构为SIGBUS)(#7958)
15. 如果无磁盘复制的子进程被杀死,确保能获取到子进程的id(#7742)
16. 当slot的迁移完成时,广播一个PONG消息,可以减少MOVED返回(#7571)
改进1. 在redis-benchmark中支持TLS(#7959)
2. 加速无磁盘复制主连接和一般的重新连接(#6271)
3. 在阻塞或加载数据时运行主动碎片整理
4. 性能和内存使用情况的改进 - sds自己控制其内部碎片(#7875)
5. 可选的(非默认配置)使用H/W Monotonic时间采样(#7644)
6. 删除编译器对C11和_Atomic支持的的需求(#7707)
7. 修复ARM的崩溃日志输出。(#8020)
8. 树莓派系统编译修复。(#8095)
9. 设置进程标题支持Haiku(操作系统)。(#8060)
10. DragonFlyBSD RSS内存采样支持。(#8023)
11. 支持配置OpenSSL使用标准openssl.cnf(#8143)
12. oom-score-adj-values配置可以现在接受绝对值(除了相对值)(#8046)
13. TLS:添加不同的客户端证书支持。(#8076)
14. 上面列出的其他一些更改添加了其配置选项。
15. 添加INFO字段跟踪磁盘无磁盘复制和磁盘复制进度(#7981)
16. 添加INFO字段主线程CPU时间,并采集系统时间。(#8132)
17. 添加total_forks字段到INFO STATS(#8155)
18. 添加maxclients和cluster_connections字段到INFO CLIENTS(#7979)
19. 添加跟踪bcast(广播地址)标志和客户端重定向信息到 client list(#7995)
20. 修复INFO client_recent_max_input_buffer包含argv数组的问题(#8065,参见#7874)
21. 上面列出的其他一些更改添加了其info字段。
22. 添加CTX_FLAGS_DENY_BLOCKING作为一个统一的方式来知道是否允许阻塞(#8025)
23. 惰性删除和unlink增加返回数据类型(#7912)
24. COPY命令增加数据类型返回(#8112)
25. 碎片整理增加数据类型返回(#8149)
26. 增加repl-diskless-load swapdb模块事件(#8153)
27. 移动RMAPI_FUNC_SUPPORTED,使其可用(#8037)
28. 提高定时器精度(#7987)
29. 允许“\0”在出现RM_CreateStringPrintf的结果中(#6260)
文章知识点与官方知识档案匹配,可进一步学习相关知识
MySQL入门技能树数据库组成48876 人正在系统学习中

与[转帖]Redis各版本特性汇总相似的内容:

[转帖]Redis各版本特性汇总

redis4redis5redis6redis6.2重大特性1.模块系统 2.PSYNC2 3.LFU淘汰策略 4.混合RDB-AOF持久化 5.LAZY FREE延迟释放 6.MEMORY内存分析命令 7.支持NAT/DOCKER 8.主动碎片整理 1.新增Stream数据类型 2.新增Redis

[转帖]Redis各版本特性汇总

redis4redis5redis6redis6.2重大特性1.模块系统 2.PSYNC2 3.LFU淘汰策略 4.混合RDB-AOF持久化 5.LAZY FREE延迟释放 6.MEMORY内存分析命令 7.支持NAT/DOCKER 8.主动碎片整理 1.新增Stream数据类型 2.新增Redis

[转帖]【redis】redis各稳定版本特性(更新到6.0版本)

1.Redis2.6 Redis2.6在2012年正是发布,经历了17个版本,到2.6.17版本,相对于Redis2.4,主要特性如下: 1)服务端支持Lua脚本。 2)去掉虚拟内存相关功能。 3)放开对客户端连接数的硬编码限制。 4)键的过期时间支持毫秒。 5)从节点支持只读功能。 6)两个新的位

[转帖]Redis之安全措施

指令安全 Redis的一些指令会对Redis服务的稳定性及安全性各方面造成影响,例如keys指令在数据量大的情况下会导致Redis卡顿,flushdb和flushall会导致Redis的数据被清空。 Redis在配置文件中提供了 rename-command 指令用于将一些危险的指令修改成其他指令,

[转帖]Docker配置文件/etc/docker/daemon.json详解

该文件作为Docker Engine的配置管理文件,几乎涵盖了所有docker命令行启动可以配置的参数。默认是没有的,需要手动创建 docker- daemon.json各配置详解 { "allow-nondistributable-artifacts": [], #不对外分发的产品提交的regis

[转帖]Redis 7 参数 修改 说明

2022-06-16 14:491800原创Redis 本文链接:https://www.cndba.cn/dave/article/108066 在之前的博客我们介绍了Redis 7 的安装和配置,如下: Linux 7.8 平台 Redis 7 安装并配置开机自启动 操作手册https://ww

[转帖]Redis 7.0 三节点哨兵(Sentinel)高可用 环境搭建手册

2022-06-17 16:253480原创Redis 本文链接:https://www.cndba.cn/dave/article/108088 1 哨兵高可用架构说明 Redis 最早的高可用方案是主从复制,但这种方案存在一个问题,就是当主库宕机后,从库不会自动切成主库,需要人工干预。 所有在主

[转帖]Redis 备份与恢复(RDB/AOF) 说明

2022-06-16 20:364580原创Redis 本文链接:https://www.cndba.cn/dave/article/108068 1 RDB 方式 1.1 RDB 备份恢复说明 Redis 的备份恢复有两种方法:RDB和AOF。 其中RDB 文件是一个经过压缩的二进制文件,有两个R

[转帖]Redis 性能优化的 13 条军规!史上最全

https://zhuanlan.zhihu.com/p/118532234 Redis性能优化实战方案 Redis 是基于单线程模型实现的,也就是 Redis 是使用一个线程来处理所有的客户端请求的,尽管 Redis 使用了非阻塞式 IO,并且对各种命令都做了优化(大部分命令操作时间复杂度都是 O

[转帖]Redis性能调优万字总结,面试必问!

https://zhuanlan.zhihu.com/p/541745804 于哥你好,最近面试挺多的,尤其是在问到java面试题,Redis被问的特别多,比如 Redis的内存模型? Redis的底层数据结构是怎么的? Redis的多线程模型 Redis的集群原理 Redis的雪崩,击穿,穿透怎么