redis 2.6 新功能介紹及安裝相關問題

    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與redis2.4.4相比。

  相同環境下,進行一萬次set,一萬次get操作,兩者所花費的時間如下:

           redis2.6.2             redis2.4.4

   set操作 5938ms                 6109ms

   get操作 5985ms                5812ms

   以上爲開發機上進行測試,並不能體現redis完整的性能,但是相同的環境下,可以測試redis不同版本的性能問題。從以上set get操作來看,redis2.6性能上還是有部分提升,但不大。

   三.info指令初始化比較

   在redis2.6下,通過src/redis-cli -h host -p port進入後,輸入info,相關redis參數:系統介紹以及redis相關參數及使用情況相比2.4更明瞭了。不同種類的配製參數都有相應的分類,查看起來變得更清晰可見了。

   值得一提的是啓動時,redis2.6相關的內存變得更少了,如下:

   reids2.6如下                                   

  used_memory:329672
  used_memory_human:321.95K
  used_memory_rss:2772992
  used_memory_peak:1440576 

mem_allocator:jemalloc-3.0.0 

redis2.4如下:

used_memory:590428

used_memory_human:576.59K

used_memory_rss:3031040

used_memory_peak:6393444 

mem_allocator:jemalloc-2.2.5


  另外info指令在2.6中增加了cpu相關信息統計。

  redis2.6 未引入集羣的功能(此功能項目中已經實現了分佈式,但還是很期待作者的實現。跳水一年,看作者的下一步計劃2.8有兩個主要功能,一個是redis sentinel (redis實例管理,監控,通知,自動恢復),另外一個是redis Cluster)。此兩功能估計還要一年,so long........)





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章