您好,登錄后才能下訂單哦!
1.什么是redis
Redis作為一個open source key-value store,與傳統的k-v存儲開源方案相比,其value類型支持各種常見數據類型(如strings, hashes, lists, sets, sorted-sets, etc.),正因如此,其可被用于多種應用場景。
特別需要說明的是:當需要處理的數據能被內存完全容納時,Redis才能發揮其優異的性能,即Redis works with an in-memory dataset。
Redis支持數據持久化(persistence),以便Redis服務因各種原因重啟后,可以load之前已有數據,從而恢復服務狀態。用戶可根據實際使用情況選擇兩種持久化策略:
1) RDB方式:dump內存數據庫至磁盤
2) AOF方式:將每個寫操作記錄到command log文件中,以便server重啟時回放log以恢復數據狀態(類似于MySQL的binlog)
Redis支持Master-Slave Replication,從庫以全鏡像方式同步主庫數據,以防系統故障。
Redis目前還不支持集群,不過支持集群的版本已在作者開發計劃中(cluster目前有alpha版本,尚未發布生產環境可用版本)。
雖無官方的集群實現,但業界主流做法是用Partitioning方式將數據集散列到不同的redis實例上,從而變相實現了對redis集群的支持,redis官網的這里對partitioning的實現思路做了描述并推薦了twitter開源的一個支持redis的proxy - twemproxy(該proxy最初是作為memcached proxy開源的)。
有兩個基本概念需要區分:Redis Master-Slave Replication和Redis Cluster,前者在兩個庫之間實現數據全鏡像,后者則是將用戶數據散列到不同機器上,每個機器的Redis節點只hold一部分用戶數據。
個人感覺,兩種方法都可以起到單點故障容錯作用,只是實現方式及應用場合不同而已。
Redis還可以被用作Message Queue,支持的指令集見這里
關于Redis的更多基礎介紹,可直接查看其官網文檔。
2. Redis Architecture
關于redis的架構及實現細節,有很多資料可以參考,這里推薦2篇:
1) Redis作者antirez關于Redis設計哲學的說明:Redis Manifesto
2) The architecture of REDIS
3. Redis Performance and Application
Redis以其高性能聞名(全內存hold數據,典型的"空間換時間"),關于其性能的benchmarks,這里給出2篇資料:
1) Redis官方發布的性能測試工具及測試結果
2) TimYang: MemcacheDB/Tokyo Tyrant/Redis性能對比測試
雖然redis在業界大熱,但也非包治百病的萬能藥。關于Redis的常見應用場合及注意事項,這里推薦2篇資料:
1) Common Web Use Cases Solved In Redis
2) TimYang: Redis幾個認識誤區
需要說明的問題:
關于性能,即使假定測試機器配置均相同,Redis的啟動配置不同也會對Redis性能指標產生影響(比如持久化策略的配置)。因此各種性能測試結果具有參考意義,但不可以生搬硬套。
關于應用,不限于本文給出的資料,大家感興趣的話,可用"redis use case"或"redis application"等key words進行搜索。
4. Redis Installing
Redis源碼無外部依賴,故編譯安裝非常方便,從官網下載最新穩定版的源碼后,解壓后make即可。
編譯好的bin文件位于在源碼的src目錄下,均以redis-xxx命名。其中:
可執行的2進制文件共有5個:
a.redis-benchmark # 性能測試工具
b.redis-check-aof # aof文件修復工具
c.redis-check-dump # rdb文件修復工具
d.redis-cli # 命令行交互工具
e.redis-server # redis server
conf文件兩個:
a.redis.conf # redis server的配置文件
b.sentinel.conf # redis sentinel配置文件,用于監控
redis server完成編譯后,部署啟動實例前,需要對redis.conf中的配置項有較為清楚的理解和合理的配置,否則可能會影響redis的性能或造成數據丟失。限于篇幅,redis的配置說明會在下篇筆記中詳細描述。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。