天天看點

阿裡資深專家聊Redis 6系列(01)——Redis簡介

2014年,利用工作之餘,我翻譯了Redis 3非穩定版的官方文檔,在網絡上被大量轉載、推薦和盜鍊。6年時光白駒過隙,Redis 6穩定版已經釋出,增加了很多新特性,鑒于各種資料參差不齊,或陳舊或殘缺或錯誤,于是抽空再倒騰下。

Redis是一款開源的(基于BSD許可)、基于記憶體的資料結構存儲(in-memory data structure store),用作資料庫(database)、緩存(cache)和消息代理(message broker)。Redis支援的資料結構,包括可按範圍查詢的字元串(string)、哈希(hash)、清單(list)、集合(set)、有序集合(sorted set),可按半徑查詢的位圖(bitmap)、超重對數(hyperloglog)和地理空間索引(geospatial indexes),以及流(stream)。Redis具有内置的複制、Lua腳本、LRU回收、事務、以及不同層次的磁盤持久化等功能,并且通過Redis Sentinel提供高可用,通過Redis Cluster提供自動分片。

你可以在這些類型上面運作原子性操作,例如,追加字元串、遞增哈希中的值、加入一個元素到清單、計算集合的交集、并集和差集,或者從有序集合中擷取最高排名的元素。

為了滿足高性能,Redis采用記憶體資料集。根據你的使用場景,你可以通過每隔一段時間轉儲資料集到磁盤,或者追加每條指令到日志檔案。持久化也可以被禁用,如果你隻是需要一個功能豐富、網絡化的記憶體緩存。

Redis還支援主從異步複制,以非阻塞的方式進行快速的初次同步,當發生網絡分隔(net split)時,自動重連并進行局部重同步。

其他特性還包括:

  • 事務
  • 釋出/訂閱
  • Lua腳本
  • 帶TTL的鍵
  • 鍵按LRU回收
  • 自動故障轉移(failover)

你可以通過大多數程式設計語言來使用Redis。

Redis是由ANSI C語言編寫的,在無需額外依賴下,運作于大多數POSIX系統,如Linux、*BSD、OS X。Redis是在Linux和OS X兩款作業系統下開發和充分測試的,我們推薦Linux為部署環境。Redis也可以運作在Solaris派生系統上,如SmartOS,但是支援有待加強。沒有官方支援的Windows建構版本(微軟開發和維護了一個64位Windows的版本)。   

牛仔很忙,畢業于華中科技大學,碩士研究所學生,校招加入騰訊,從事電子商務相關研發工作。連續兩段創業經曆後,最近一份經曆,是阿裡巴巴國際化中台深圳團隊負責人,從事阿裡電商中台架構、團隊管理、雙十一大促、穩定性等工作。

我的人生理想是,白天當一名中學老師,晚上當一名滴滴司機。

歡迎關注微信公衆号:程式員阮威