2012/05/10

Redis 初試

Redis
是一種 key-value 的 storage,可以想成進階版的 memcached,它提供了更多種 data structure 與 operator。它不再只是一個儲存體,更能做一些邏輯運算,之前很多要在 client 端做的事情,都可以在 redis server 處理掉。
和其他 NoSQL 相比,資料儲存在 memory,存取速度超快,但也因此儲存空間會受限在 memory size,雖然支援分散式 (Master-Slave),但每個 node 都是一個映射,也就是儲存一模一樣的資料,所以什麼該放在 redis 也是需要仔細想過。它不是完全用來取代 database,而是針對經常存取、較複雜運算的部份再派它上場。

這三篇推薦看一下

這三份文件也可以看




參數設定
請參考 Redis.conf 中文配置详解.docx,下面列出幾個比較重要的參數:
限制 redis 使用 memory 的大小,當 memory 滿的時候,使用 LRU 的方式來移除舊的key
maxmemory <bytes>
maxmemory-policy volatile-lru

文中建議關閉鏡像備份,用 Append Only Mode 的方式來備份,並設定自動執行 BGREWRITEAOF 指令來重整 appendonly.aof
# save <seconds> <changes>
appendonly yes
appendfilename appendonly.aof
auto-aof-rewrite-percentage 128
zset-max-ziplist-value 64
activerehashing yes

若使用分散式架構,要指定master主機的位址
slaveof <masterip> <masterport>
slave-serve-stale-data yes


指令使用


應用在哪?
個人也還在摸索當中,只覺得 redis 真的很強大,但再強大的東西也是需要遇到會用的人,也就是怎麼把當下的問題用 redis 來解決,這就攸關個人的設計能力了。


待整理的資料



沒有留言:

張貼留言