2012年8月29日 星期三

redis in python



Redis 為 Remote Dictionary Server 的縮寫, 是一款 In-Memory 的 NoSQL 資料庫, 因為是 In-Memory DB , 在資料的 access 上會比其他任何形式的資料庫都來的快速, 但是在規劃 data model 時必須注意資料的容量受限於實體記憶體的大小 ; 另外值得一提的是, redis 相對於其他的 NoSQL database , 提供了更為多元的 high-level data structure , 讓開發者在規劃 與開發時更為彈性與便捷


(1) 安裝 redis database

在 http://redis.io/download 中可以選擇欲使用的版本, 網頁下方也清楚展示了安裝的方式 ; redis-cli 是一個互動式的操作環境, 可以在此程序中直接輸入指令來操作資料庫

(2) 安裝 redis python client

由於 redis 的便利性, 使其廣為各個語言所支援 , 目前多數主流程式語言的 redis client 皆已 被開發完成 ; 而在 python 中, 目前多用 redis-py 來開發

只要在 .py script 檔中 import redis 即可再該檔案內操作 redis database
redis-py 進一步使用方式可以參考 http://degizmo.com/2010/03/22/getting-started-redis-and-python/

(3) 注意事項

以下列出一些 redis 原生指令與在 redis-py 中幾個差異處

a. select db : 在 redis-cli 環境中可以透過 select n 來切換目前的 key-space ( 例如可以用來區分 testing 與 deploy 的 db 版本 ) , 然而在 python 中只能透過一開始在初始 redis 物件時來選擇 key space , 例如 r = redis.Redis("localhost",db=1) 即為選擇第一號 data space

b. 刪除某個 key : 在 redis-cli 中欲刪除某個 key 的指令為 del key_name , 然而 del 在 python script 中是被視作保留字 (reserved word) , 因此在 redis-py 中要使用 r.delete(key_name)