基本的 redis 操作與 Strings Lists Hashes資料型態

概念非常簡單的 redis,

操作上非常簡單,

瞭解基本的操作,

再依各巧思利用 redis 所提供的機制。

為何叫 redis?

是因為 REmote DIctionary Server,

字典式即是以 key value 型態來存取資料,

目前各Linux都已有redis的現成套件,

安裝完後,啟動 redis 的 server 端,

然後從 CLI 執行 redis-cli 的 client 使用。

或者也可以到 Try Redis,

從線上體驗操作redis。

該網站提供了個簡單的線上教學,

鍵入 TUTORIAL,

便可依指示操作而認識 redis。

基本的操作

$ redis-cli#列出現有所有的 keyredis 127.0.0.1:6379> keys *(empty list or set)#設個key value 及查詢redis 127.0.0.1:6379> set os linuxOKredis 127.0.0.1:6379> get os"linux"redis 127.0.0.1:6379> keys *1) "os"#切換到不同的資料庫以select執行,預設是使用0redis 127.0.0.1:6379> select 1OKredis 127.0.0.1:6379[1]> keys *(empty list or set)redis 127.0.0.1:6379[1]> select 0OKredis 127.0.0.1:6379> keys *1) "os"#刪除指定的 keyredis 127.0.0.1:6379> del os(integer) 1

常用的基本資料型態

基本來說,redis就只是 redis['key'] = 'value' 這樣的型態而已,

而value 的資料型態可以是:Strings(Integers), Lists, Hashes, Sets, Sorted Sets

就這麼簡單的概念,

分別就怎麼用這些資料型態來操作。

Strings(Integers)

假設每點閱文章一次就累加次數

redis 127.0.0.1:6379> incr hit:player:twtw(integer) 1#如果指定一次累加多少可用 incrbyredis 127.0.0.1:6379> incrby hit:player:twtw 5(integer) 6#遞減用 decr 及相對應的 decrbyredis 127.0.0.1:6379> decr hit:player:twtw(integer) 5redis 127.0.0.1:6379> decrby hit:player:twtw 2(integer) 3#查詢某key的值redis 127.0.0.1:6379> get hit:player:twtw"3"#key不存在則為nil或-1redis 127.0.0.1:6379> get hit:player:none(nil)

Lists

有順序的列表,

假設給twtw訊息的編號,

最新的排在最前面:

redis 127.0.0.1:6379> lpush msg:twtw 100(integer) 5#列出所有訊息編號:redis 127.0.0.1:6379> lrange msg:twtw 0 -11) "100"2) "55"3) "33"4) "4"5) "2"#如果只保留前三個訊息redis 127.0.0.1:6379> ltrim msg:twtw 0 2OKredis 127.0.0.1:6379> lrange msg:twtw 0 -11) "100"2) "55"3) "33"#若要刪掉倒數第一個55的訊息redis 127.0.0.1:6379> lrem msg:twtw -1 55(integer) 1redis 127.0.0.1:6379> lrange msg:twtw 0 -11) "100"2) "33"#從左邊pop出第一個redis 127.0.0.1:6379> lpop msg:twtw"100"redis 127.0.0.1:6379> lrange msg:twtw 0 -11) "33"

Hashes

#同時設好幾個key value用hmsetredis 127.0.0.1:6379> hmset player:twtw type tech subject "建立API為中心的輕量級網站"OK#一次抓所有的值redis 127.0.0.1:6379> hgetall player:twtw1) "type"2) "tech"3) "subject"4) "\\xe5\\xbb\\xba\\xe7\\xab\\x8bAPI\\xe7\\x82\\xba\\xe4\\xb8\\xad\\xe5\\xbf\\x83\\xe7\\x9a\\x84\\xe8\\xbc\\x95\\xe9\\x87\\x8f\\xe7\\xb4\\x9a\\xe7\\xb6\\xb2\\xe7\\xab\\x99"#一次只加一個key value用 hsetredis 127.0.0.1:6379> hset player:twtw created_at "2012-10-09 23:34:26"(integer) 1#一次抓一個key值redis 127.0.0.1:6379> hget player:twtw type"tech"

系列文章列表


分享到:


相關文章: