[转帖]Redis重大版本整理(Redis2.6-Redis7.0)
Redis借鉴了Linux操做系统对于版本号的命名规则:node 版本号第二位若是是奇数,则为非稳定版本(例如2.7、2.9、3.1),若是是偶数,则为稳定版本(例如2.6、2.8、3.0、3.2)。
当前奇数版本就是下一个稳定版本的开发版本,例如2.9版本是3.0版本的开发版本,因此咱们在生产环境一般选取偶数版本的Redis。
下面是重大版本新功能的归纳:
Redis7.0
新增Function自定义函数库,函数库支持持久化与可复制
支持Client-Eviction
支持Sharded-Pub/Sub
支持命令执行耗时直方图
支持子命令级别的性能统计
支持Global Replication Buffer
使用 Multi-Part AOF 机制避免 AOF 重写机制的开销;
对 RDB 文件使用了新版本格式(10),与旧版本不兼容;
在读取老的RDB文件格式的时候将ziplist转换为listpack,这种转换发生于两种情况之下:从磁盘读取文件或者从一个主节点进行复制文件的时候;
ACL: 细粒度基于 key 的权限控制,通过 selector 支持多种命令规则,支持对Pub/Sub channel的权限控制。
主从复制:TTL 总是被复制为绝对(非相对)毫秒时间
不再支持 gopher协议,删除 STRALGO 命令
当在配置文件中设置replica-serve-stale-data=no, 当主节点不再提供服务时,PING命令得不到返回值;
在redis.conf配置文件中,protected-mode 默认更改为yes,只有当你希望你的客户端在没有授权的情况下可以连接到Redis server的时候可以将protected-mode设置为no;
Lua脚本(脚本本身代码)不再支持持久化和复制,仅对命令执行结果进行持久化和复制
Redis6.0
- 多线程 IO(Threaded I/O)
- 众多新模块(modules)API
- 更好的过期循环(expire cycle)
- 支持SSL
- ACLs 权限控制
- RESP3 协议
- 客户端缓存(Client side caching)
- 无盘复制&PSYNC2
- Redis-benchmark支持集群
- Redis-cli 优化、重写 Systemd 支持
- Redis 集群代理与 Redis 6 一同发布(但在不同的 repo)
- RDB更快加载
- SRANDMEMBER和类似的命令具有更好的分布
- STRALGO 命令
- 带有超时的 Redis 命令更易用
Redis5.0
- 新的流数据类型(Stream data type)(支持多播的可持久化的消息队列) https://redis.io/topics/streams-intro
- 新的 Redis 模块 API:定时器、集群和字典 API(Timers, Cluster and Dictionary APIs)
- RDB 增加 LFU 和 LRU 信息
- 集群管理器从 Ruby (redis-trib.rb) 移植到了redis-cli 中的 C 语言代码
- 新的有序集合(sorted set)命令:ZPOPMIN/MAX 和阻塞变体(blocking variants)
- 升级 Active defragmentation 至 v2 版本增强 HyperLogLog 的实现
- 更好的内存统计报告
- 许多包含子命令的命令现在都有一个 HELP 子命令
- 客户端频繁连接和断开连接时,性能表现更好
- 许多错误修复和其他方面的改进
- 升级 Jemalloc 至 5.1 版本
- 引入 CLIENT UNBLOCK 和 CLIENT ID
- 新增 LOLWUT 命令 http://antirez.com/news/123
- 在不存在需要保持向后兼容性的地方,弃用 “slave” 术语
- 网络层中的差异优化Lua 相关的改进
- 引入动态的 HZ(Dynamic HZ) 以平衡空闲 CPU 使用率和响应性
- 对 Redis 核心代码进行了重构并在许多方面进行了改进
Redis4.0
可能出乎不少的意料,Redis3.2以后的版本是4.0,而不是3.4、3.6、3.8。
通常这种重大版本号的升级也意味着软件或者工具自己发生了重大改革。下面是Redis4.0的新特性:
- 提供了模块系统,方便第三方开发者拓展Redis的功能。
- PSYNC2.0:优化了以前版本中,主从节点切换必然引发全量复制的问题。
- 提供了新的缓存剔除算法:LFU(Last Frequently Used)(注意LFU和LRU算法的不同之处,LRU的淘汰规则是基于访问时间,而LFU是基于访问次数的),并对已有算法进行了优化。
- 提供了非阻塞del和flushall/flushdb功能,新添加了 UNLINK 命令, 这个命令是 DEL 命令的异步版本, 它可以将删除指定键的操作放在后台线程里面执行
- 提供了memory命令,实现对内存更为全面的监控统计。
- 提供了交互数据库功能,实现Redis内部数据库的数据置换。
- 提供了RDB-AOF混合持久化*格式,充分利用了AOF和RDB各自优点。
- Redis Cluster 兼容NAT和Docker。
Redis3.2
Redis3.2在2016年5月6日正式发布,相比于Redis3.0主要特征以下:
- 添加GEO相关功能。
- SDS在速度和节省空间上都作了优化。
- 支持用upstart或者systemd管理Redis进程。
- 新的List编码类型:quicklist。
- 从节点读取过时数据保证一致性。
- 添加了hstrlen命令。
- 加强了debug命令,支持了更多的参数。
- Lua脚本功能加强。
- 添加了Lua Debugger。
- config set 支持更多的配置参数。
- 优化了Redis崩溃后的相关报告。
- 新的RDB格式,可是仍然兼容旧的RDB。
- 加速RDB的加载速度。
- spop命令支持个数参数。
- cluster nodes命令获得加速。
- Jemalloc更新到4.0.3版本。
Redis3.0(里程碑)
Redis3.0在2015年4月1日正式发布,相比于Redis2.8主要特性以下:
Redis最大的改动就是添加Redis的分布式实现Redis Cluster。
- Redis Cluster:Redis的官方分布式实现。
- 全新的embedded string对象编码结果,优化小对象内存访问,在特定的工做负载下载速度大幅提高。
- Iru算法大幅提高。
- migrate链接缓存,大幅提高键迁移的速度。
- migrate命令两个新的参数copy和replace。
- 新的client pause命令,在指定时间内中止处理客户端请求。
- bitcount命令性能提高。
- config set设置maxmemory时候能够设置不一样的单位(以前只能是字节)。
- Redis日志小作调整:日志中会反应当前实例的角色(master或者slave)。
- incr命令性能提高。
Redis2.8
Redis2.8在2013年11月22日正式发布,经历了24个版本,到2.8.24版本,相比于Redis2.6,主要特性以下:
- 添加部分主从复制的功能,在必定程度上下降了因为网络问题,形成频繁全量复制生成RDB对系统形成的压力。
- 尝试性的支持IPv6.
- 能够经过config set命令设置maxclients。
- 能够用bind命令绑定多个IP地址。
- Redis设置了明显的进程名,方便使用ps命令查看系统进程。
- config rewrite命令能够将config set持久化到Redis配置文件中。
- 发布订阅添加了pubsub。
- Redis Sentinel第二版,相比于Redis2.6的Redis Sentinel,此版本已经变成生产可用。
Redis2.6
Redis2.6在2012年正是发布,经历了17个版本,到2.6.17版本,相对于Redis2.4,主要特性以下:缓存
- 服务端支持Lua脚本。网络
- 去掉虚拟内存相关功能。分布式
- 放开对客户端链接数的硬编码限制。工具
- 键的过时时间支持毫秒。性能
- 从节点支持只读功能。优化
- 两个新的位图命令:bitcount和bitop。
- 加强了redis-benchmark的功能:支持定制化的压测,CSV输出等功能。
- 基于浮点数自增命令:incrbyfloat和hincrbyfloat。
- redis-cli可使用–eval参数实现Lua脚本执行。
- shutdown命令加强。
- 重构了大量的核心代码,全部集群相关的代码都去掉了,cluster功能将会是3.0版本最大的亮点。
- info能够按照section输出,而且添加了一些统计项
- sort命令优化
Redis 4.0 新功能简介 https://blog.huangz.me/diary/2016/redis-4-outline.html
Redis 5.0新功能介绍 https://juejin.im/post/6844903832997085197
Redis 6.0 新特性 - 多线程连环 13 问 https://xie.infoq.cn/article/fdc6387f6eca550b8e3a1b0ea
https://developer.aliyun.com/article/763834
Redis 7.0 新功能新特性总览 https://blog.csdn.net/qianshangding0708/article/details/124580604
[转帖]Redis重大版本整理(Redis2.6-Redis7.0)的更多相关文章
- Redis重大版本
Redis借鉴了Linux操作系统对于版本号的命名规则: 版本号第二位如果是奇数,则为非稳定版本(例如2.7.2.9.3.1),如果是偶数,则为稳定版本(例如2.6.2.8.3.0.3.2), 当前奇 ...
- [转帖]Redis未授权访问漏洞复现
Redis未授权访问漏洞复现 https://www.cnblogs.com/yuzly/p/11663822.html config set dirconfig set dbfile xxxx 一. ...
- [转帖]csdn windows 下载整理.
特别说明:本帖不提供任何密钥或激活方法,请大家也不要在帖内回复或讨论涉及版权的相关内容,仅提供原版ISO下载链接 https://bbs.csdn.net/topics/391111024?list= ...
- SpringBoot之整合Redis分析和实现-基于Spring Boot2.0.2版本
背景介绍 公司最近的新项目在进行技术框架升级,基于的Spring Boot的版本是2.0.2,整合Redis数据库.网上基于2.X版本的整个Redis少之又少,中间踩了不少坑,特此把整合过程记录,以供 ...
- redis操作封装整理
<?php /** * redis操作类 * 说明,任何为false的串,存在redis中都是空串. * 只有在key不存在时,才会返回false. * 这点可用于防止缓存穿透 * */ cla ...
- 转:2018最全Redis面试题整理
Java面试----2018最全Redis面试题整理 1.什么是Redis? 答:Redis全称为:Remote Dictionary Server(远程数据服务),是一个基于内存的高性能key-va ...
- Redis相关知识整理
Redis相关知识整理 1. Redis和MySQL的区别?a).mysql是关系型数据库,而redis是NOSQL,非关系型数据库.mysql将数据持久化到硬盘,读取数据慢,而redis数据先存储在 ...
- Redis 历史版本下载URL
Redis 历史版本下载URL: http://download.redis.io/releases/ Redis和RedisClient 官网下载方式: https://blog.51cto.com ...
- 【转帖】sysbench使用教程(包含ubuntu自带的0.4版本、0.5版本和最新的1.0版本)
sysbench使用教程(包含ubuntu自带的0.4版本.0.5版本和最新的1.0版本) 2018年08月10日 09:54:42 cxin917 阅读数 429 版权声明:本文为博主原创文章, ...
- [.net 面向对象程序设计深入](4)MVC 6 —— 谈谈MVC的版本变迁及新版本6.0发展方向
[.net 面向对象程序设计深入](4)MVC 6 ——谈谈MVC的版本变迁及新版本6.0发展方向 1.关于MVC 在本篇中不再详细介绍MVC的基础概念,这些东西百度要比我写的全面多了,MVC从1.0 ...
随机推荐
- Windows Server 2016配置NTP客户端
前提:开通Windows Time 服务 输入services.msc进入服务管理界面,找到Windows Time 开启服务. 情况1:可以直接设置NTP时钟 控制面板--时钟和区域--设置时间和日 ...
- 别再傻傻地用 ifconfig 查地址了!这条命令足以让你摘掉小白工程师的帽子
大家好,我是民工哥. 众所周知,在 Linux 系统中,ip 和 ifconfig 这个两命令的功能十分相似,ifconfig 是 net-tools 中已被弃用的一个命令,很多年前就已经没有维护了. ...
- bazel 使用 gtest/gmock 报错 Constraints from @bazel_tools//platforms have been removed
问题描述 运行 bazel test 命令,遇到错误:"Constraints from @bazel_tools//platforms have been removed. Please ...
- 如何通过jstat命令进行查看堆内存使用情况?
摘要:jstat命令可以查看堆内存各部分的使用量,以及加载类的数量. 本文分享自华为云社区<JVM之通过jstat命令进行查看堆内存使用情况>,作者:共饮一杯无 . 基本概念 jstat是 ...
- 论文推荐|TDSC2022 安全补丁识别最新的方案E-SPI
摘要:TDSC 2022发表了安全补丁识别最新的方案"Enhancing Security Patch Identification by Capturing Structures in C ...
- 华为云GaussDB数据库荣获国际CC EAL4+级别认证
摘要:近日,华为云GaussDB企业级分布式数据库内核正式通过了全球知名独立认证机构欧洲SGS Brightsight实验室的安全评估,获得全球权威信息技术安全性评估标准CC EAL4+级别认证. 本 ...
- 字节跳动开源数据集成引擎 BitSail 的演进历程与能力解析
导读 BitSail 是字节跳动开源数据集成引擎,支持多种异构数据源间的数据同步,并提供离线.实时.全量.增量场景下全域数据集成解决方案,目前支撑了字节内部和火山引擎多个客户的数据集成需求.经过字节跳 ...
- 提速 10 倍!深度解读字节跳动新型云原生 Spark History Server
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 前不久,在 6月29日 Databricks 举办的 Data + AI Summit 上,火山引擎向大家首次介绍 ...
- Xml Entity 实体互转(JAXB)
感觉比 xStream 操作起来复杂些 Xml Entity 实体互转(XStream).但学习成本低些,不需要引用第三方依赖包 需要注意的是 实体中如果加了 getXX 需要在上面加上 @XmlTr ...
- 一款基于.NET开发的免费的火车票分流抢票软件
前言 接近年底了又到了全员抢票的日子,今天有同学在技术群里问有没有黄牛推荐帮忙抢车票的.今天分享一个我一直在用的基于.NET开发的.完全免费的火车票分流抢票软件:Bypass. 软件介绍 Bypass ...