redis 2.6 新功能介紹及安裝相關問題
redis2.6在前兩天發布了(http://redis.io/download),當天下載的時候,在make時一堆編譯錯誤,后來看issue,跟linux系統版本及位數有關。
昨天作者 發布了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........)