Redis 是一个开源、基于 C 语言、基于内存亦可持久化的高性能 NoSQL 数据库,同时,它还提供了多种语言的 API。近日,Redis 3.0 在经过 6 个 RC 版本后,其正式版终于发布了。Redis 3.0 的最重要特征是对Redis 集群的支持,此外,该版本相对于2.8 版本在性能、稳定性等方面都有了重大提高。
Redis 3.0 正式版相对于 RC6 版本的改进内容包括:
- 修复了无磁盘情况下的的复制问题;
- 在角色变化后对 BLPOP 复制进行了测试;
- 改进了 prepareClientToWrite() 错误处理;
- 移除了 dict.c 中不再使用的函数。
Redis 3.0 版本相对于 2.8 版本带来的主要新特性包括:
- 实现了分布式的 Redis 即 Redis Cluster ,从而做到了对集群的支持;
- 引入了全新的"embedded string" 对象编码方式,从而实现了更少的缓存丢失和在特定的工作负载下速度的大幅提升;
- AOF 重写过程中的 “last write” 操作降低了 AOF child -> parent 数据传输的延迟
- 大幅提升 LRU 算法的性能以用于值的失效;
- WAIT 命令能够阻塞传输到指定数量从节点的写操作;
- 实现了对 MIGRATE 连接缓存的支持,从而大幅提升键值迁移的性能;
- 为 MIGARTE 新增了参数:COPY 和 REPLACE;
- CLIENT PAUSE 命令实现了在指定时间内停止处理客户端请求;
- 提高了 BITCOUNT 、 INCR 操作的性能;
- CONFIG SET 能够接受不同单位的内存值,如 CONFIG SET maxmemory 1gb;
- 调整 Redis 日志格式。
Redis 之父 Salvatore Sanfilippo 针对 Redis 3.0 正式版的发布这样说到:
自己相信 Redis 3.0 将能够完全改变 Redis 的面貌,人们将认识到 Redis 是一个全新的东西,它的自动扩展、容错和高可用性都有了很大的改进,从此,它将能够在更大范围内承担更关键的任务。Redis 3.0 标志着一个新阶段和新开发模式的开始。以后,大量已经开发的新功能将不再急于进入稳定版本,实际上 Redis 3.0 就放弃了很多新功能,从而保证用户能够马上使用新的稳定版本。
Redis 3.0 正式版发布的消息一经公布,就引起了国内各大社区、论坛的热烈讨论,Reddit 的用户主要针对 Redis 稳定性进行了讨论,Hacker News 上也有了相关评论,有兴趣的读者可以前去查看。更多关于Redis 3.0 正式版本的改进内容,请读者查看其发布说明。更多关于Redis 相关信息,请读者登录其官网或者查看 GitHub 上提供相关的文档。
感谢郭蕾对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流。
评论