[转帖]Redis各版本特性汇总
| redis4 | redis5 | redis6 | redis6.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) |
[转帖]Redis各版本特性汇总的更多相关文章
- [转帖]sql server版本特性简介、版本介绍简介
sql server版本特性简介.版本介绍简介 https://www.cnblogs.com/gered/p/10986240.html 目录 1.1.sql server的版本信息 1.2.版本重 ...
- Redis 的 GEO 特性将在 Redis 3.2 版本释出
Redis 的 GEO 特性将在 Redis 3.2 版本释出, 这个功能可以将用户给定的地理位置信息储存起来, 并对这些信息进行操作. 本文将对 Redis 的 GEO 特性进行介绍, 说明这个特性 ...
- 为什么说JAVA中要慎重使用继承 C# 语言历史版本特性(C# 1.0到C# 8.0汇总) SQL Server事务 事务日志 SQL Server 锁详解 软件架构之 23种设计模式 Oracle与Sqlserver:Order by NULL值介绍 asp.net MVC漏油配置总结
为什么说JAVA中要慎重使用继承 这篇文章的主题并非鼓励不使用继承,而是仅从使用继承带来的问题出发,讨论继承机制不太好的地方,从而在使用时慎重选择,避开可能遇到的坑. JAVA中使用到继承就会有两 ...
- C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) C#各版本新特性 C#版本和.NET版本以及VS版本的对应关系
C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) 2017年08月06日 11:53:13 阅读数:6705 历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有1 ...
- Redis学习第八课:Redis高级实用特性(二)
Redis高级实用特性 4.持久化机制 Redis是一个支持持久化的内存数据库,也就是说Redis需要经常将内存中的数据同步到硬盘来保证持久化.Redis支持两种持久化方式:(1).snapshott ...
- Redis学习第八课:Redis高级实用特性(一)
Redis高级实用特性 注:我学习的环境是vmware7.1 + ubantu10.10+ redis 3.0.2 1.安全性 设置客户端连接后进行任何其他指定前需要的密码.因为redis速度相当快, ...
- 如何在windows上玩转redis的最新特性?
想要了解redis的最新特性,可是windows下的可以安装的版本最高为3.2,想要验证redis的诸如stream特性的话,就无能为力了. 解决方法之一在windows上安装虚拟机,然后再虚拟机上安 ...
- ECMAScript版本知识点汇总
ECMAScript版本知识点汇总 ES5 btoa.atob 对参数进行base64格式编码.解码 /** * btoa() * base64编码 * @param {string} str * @ ...
- Redis缓存何以一枝独秀?——从百变应用场景与热门面试题中感受下Redis的核心特性与使用注意点
大家好,又见面了. 本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面.如果感兴趣,欢迎关注以获取后续更新. 作为<深入理解缓存原理与实战设计 ...
- 【转】Spark-Sql版本升级对应的新特性汇总
Spark-Sql版本升级对应的新特性汇总 SparkSQL的前身是Shark.由于Shark自身的不完善,2014年6月1日Reynold Xin宣布:停止对Shark的开发.SparkSQL抛弃原 ...
随机推荐
- 先收藏!关于Java类、接口、枚举的知识点大汇总
摘要:Java知识点精选之类.接口.枚举30问,算是比较基础的,希望大家一起学习进步. 整理了一些JAVA语言的在类.接口.枚举等方面的知识点以及大家常遇到的问题.希望能帮助到大家. Q: 各修饰符所 ...
- 云小课|DSC帮您管数据,保障您的云上数据安全
摘要:华为数据安全中心,积累华为云多年数据经验,整合云上各类数据源,搭载数据安全黑科技,通过深度行为识别引擎,助您轻松管理云上数据. 本文分享自华为云社区<云小课 | DSC帮您管数据,保障您的 ...
- 如何使用TCP/IP开发网络程序
摘要:进行TCP协议网络程序的编写,关键在于ServerSocket套接字的熟练使用,TCP通信中所有的信息传输都是依托ServerSocket类的输入输出流进行的. 本文分享自华为云社区<Ja ...
- 9个问题,带你掌握流程控制语句中的java原理
摘要:利用9个问题帮助记忆流程控制语句中的Java原理知识. 本文分享自华为云社区<流程控制语句知识点里的java原理>,作者:breakDraw . 相信大家经常会遇到这种问题 可是这个 ...
- Solon 路由的 Url 大小写匹配与事项注意
Solon 路由器对 url 的匹配默认是 "忽略大小写" 的.如果有需要,可以强制开启:v2.2.14 后支持 @SolonMain public class App{ publ ...
- Multisim 14 免费破解版,下载安装教程,2023年亲测可用,永久激活
Multisim是一款功能强大.操作流畅的专业仿真工具,适用于板级模拟/数字电路板设计工作,提供电路原理图图形输入.电路硬件描述语言输入,具有丰富的仿真分析能力.拥有专业版和教学版,深受国内外教师.科 ...
- Mac 开发 | IDEA 设置 Mybatis 的XML SQL 语句提示
1.IDEA 链接数据库 2.IDEA 设置数据库方言为链接的数据库方言 3.IDEA SQL 解析范围设置 4. 可以在mapper xml 中写select 测试了.
- 区间dp专题小结
区间DP是一类在区间上进行动态规划的最优问题,一般是根据问题设出一个表示状态的 dp,可以是二维的也可以是三维的,一般情况下为二维.然后将问题划分成两个子问题,也就是一段区间分成左右两个区间,然后将左 ...
- jdk(jvm)调式工具
JConsole 可视化工具介绍一. JConsole介绍1.1 JConsole描述Jconsole (Java Monitoring and Management Console),一种基于JMX ...
- 【转载】内存基本概念-node, zone ,page
1. Linux描述物理内存 在linux 内存管理(一)中介绍了UMA和NUMA,Linux通过巧妙办法把UMA和NUMA的差别隐藏了起来,所谓的UMA其实就是只有一个结点的NUMA.内存的每个结点 ...