redis 2.6 新功能介绍及安装相关问题

11年前

    redis2.6在前两天发布了(http://redis.io/download),当天下载的时候,在make时一堆编译错误,后来看issue,跟linux系统版本及位数有关。

    昨天作者 antirez发布了2.6.2,此版本修复了一些linux版本不兼容导致make不通过的问题,可是下下来以后,发现在测试机编译还是有些问题,与是在issue上提出一个问题:(https://github.com/antirez/redis/issues/736#issuecomment-9848046) 早上来的时候,看到大牛们热心的回复,真的很感动。在测试机上,由于系统 是32位的,导致编译时没通过,首先我立马确定了这个问题,在64位测试机上测试时,发现果然编译可以通过,然后在32位上,跟据提示,在Makefile中增加一条CFLAGS= -march=i686,编译也顺利通过了,顿时感觉舒畅很多!

    下载地址:http://redis.googlecode.com/files/redis-2.6.2.tar.gz 

  然后tar, make,即可。(make前,如果确认自己的测试机是32位linux,在src/Makefile文件中的头部加上CFLAGS= -march=i686,可参考issuse中相关回答)

  修改对应的redis.conf,然后启动,即可进行测试了。

  此版本主要更新的功能有:

  1.支持lua脚本。
  2.VM(虚拟内存)去掉了。
  3.对于client的limit限制变成无限制。
  4.aof性能提升了不少。
  5.key的过滤时间可以支持毫秒级别了,原来是秒。
  6.list与hash 的属性filed或value包含小整数,内存优化列好(使用了jemalloc,以前是malloc)。
  7.提供了BITCOUNT与BITOP,前者支持位值count,后者支持了位操作。(以前只支持key-value 的置位操作)
  8.支持新命令dump以及restore ,即序列化与反序列化操作。
  9.大数据存储性能优化

  等。

  以上功能我比较关注的一个是lua脚本支持,一个是位操作的功能扩展。

  对于位操作的增加,在2.4已经存在,通过setbit/getbit,相关操作(要注意大小端的问题,存储读取数据时)。

  此次增加了bitcount,以及bitop操作,通过位操作,来增强一些统计功能等相关功能的实现应该有很大的帮忙。

  对于我们的系统里,以及用bit位记录相关数据,但是一直不能位操作,一直在考虑是否自己增加,在2.6作者实现了。还是非常赞一个。


  使用了jemalloc,以及相关代码的优化,redis2.6的性能一定有一定提升,具体有多大提升,稍后会进行一些测试,再后续补上(。。)

  redis2.6 未引入集群的功能(此功能项目中已经实现了分布式,但还是很期待作者的实现。跳水一年,看作者的下一步计划2.8有两个主要功能,一个是redis sentinel (redis实例管理,监控,通知,自动恢复),另外一个是redis Cluster)。此两功能估计还要一年,so long........)