Redis借鑑了Linux操做系統對於版本號的命名規則:node
版本號第二位若是是奇數,則爲非穩定版本(例如2.七、2.九、3.1),若是是偶數,則爲穩定版本(例如2.六、2.八、3.0、3.2),redis
當前奇數版本就是下一個穩定版本的開發版本,例如2.9版本是3.0版本的開發版本,因此咱們在生產環境一般選取偶數版本的Redis。算法
1.Redis2.6數據庫
Redis2.6在2012年正是發佈,經歷了17個版本,到2.6.17版本,相對於Redis2.4,主要特性以下:緩存
1)服務端支持Lua腳本。網絡
2)去掉虛擬內存相關功能。分佈式
3)放開對客戶端鏈接數的硬編碼限制。工具
4)鍵的過時時間支持毫秒。性能
5)從節點支持只讀功能。優化
6)兩個新的位圖命令:bitcount和bitop。
7)加強了redis-benchmark的功能:支持定製化的壓測,CSV輸出等功能。
8)基於浮點數自增命令:incrbyfloat和hincrbyfloat。
9)redis-cli可使用--eval參數實現Lua腳本執行。
10)shutdown命令加強。
11)重構了大量的核心代碼,全部集羣相關的代碼都去掉了,cluster功能將會是3.0版本最大的亮點。
12)info能夠按照section輸出,而且添加了一些統計項
13)sort命令優化
2.Redis2.8
Redis2.8在2013年11月22日正式發佈,經歷了24個版本,到2.8.24版本,相比於Redis2.6,主要特性以下:
1)添加部分主從複製的功能,在必定程度上下降了因爲網絡問題,形成頻繁全量複製生成RDB對系統形成的壓力。
2)嘗試性的支持IPv6.
3)能夠經過config set命令設置maxclients。
4)能夠用bind命令綁定多個IP地址。
5)Redis設置了明顯的進程名,方便使用ps命令查看系統進程。
6)config rewrite命令能夠將config set持久化到Redis配置文件中。
7)發佈訂閱添加了pubsub。
8)Redis Sentinel第二版,相比於Redis2.6的Redis Sentinel,此版本已經變成生產可用。
3.Redis3.0(里程碑)
Redis3.0在2015年4月1日正式發佈,相比於Redis2.8主要特性以下:
Redis最大的改動就是添加Redis的分佈式實現Redis Cluster。
1)Redis Cluster:Redis的官方分佈式實現。
2)全新的embedded string對象編碼結果,優化小對象內存訪問,在特定的工做負載下載速度大幅提高。
3)Iru算法大幅提高。
4)migrate鏈接緩存,大幅提高鍵遷移的速度。
5)migrate命令兩個新的參數copy和replace。
6)新的client pause命令,在指定時間內中止處理客戶端請求。
7)bitcount命令性能提高。
8)cinfig set設置maxmemory時候能夠設置不一樣的單位(以前只能是字節)。
9)Redis日誌小作調整:日誌中會反應當前實例的角色(master或者slave)。
10)incr命令性能提高。
4.Redis3.2
Redis3.2在2016年5月6日正式發佈,相比於Redis3.0主要特徵以下:
1)添加GEO相關功能。
2)SDS在速度和節省空間上都作了優化。
3)支持用upstart或者systemd管理Redis進程。
4)新的List編碼類型:quicklist。
5)從節點讀取過時數據保證一致性。
6)添加了hstrlen命令。
7)加強了debug命令,支持了更多的參數。
8)Lua腳本功能加強。
9)添加了Lua Debugger。
10)config set 支持更多的配置參數。
11)優化了Redis崩潰後的相關報告。
12)新的RDB格式,可是仍然兼容舊的RDB。
13)加速RDB的加載速度。
14)spop命令支持個數參數。
15)cluster nodes命令獲得加速。
16)Jemalloc更新到4.0.3版本。
5.Redis4.0
可能出乎不少的意料,Redis3.2以後的版本是4.0,而不是3.四、3.六、3.8。
通常這種重大版本號的升級也意味着軟件或者工具自己發生了重大改革。下面是Redis4.0的新特性:
1)提供了模塊系統,方便第三方開發者拓展Redis的功能。
2)PSYNC2.0:優化了以前版本中,主從節點切換必然引發全量複製的問題。
3)提供了新的緩存剔除算法:LFU(Last Frequently Used),並對已有算法進行了優化。
4)提供了非阻塞del和flushall/flushdb功能,有效解決刪除了bigkey可能形成的Redis阻塞。
5)提供了memory命令,實現對內存更爲全面的監控統計。
6)提供了交互數據庫功能,實現Redis內部數據庫的數據置換。
7)提供了RDB-AOF混合持久化格式,充分利用了AOF和RDB各自優點。
8)Redis Cluster 兼容NAT和Docker。