Redis

Redis とは

Redis(remote dictionary server) はオンメモリのKVSです。
オンメモリなのでmemcacheのように高速で、さらにソートなどの便利機能がついてます
格納できるキーやバリューもバイナリ文字列が使えます
http://redis.io/

Mac に Redis をインストール

brewを使います

$ brew install redis

redis 起動

$ redis-server

$ redis-cli

キー

バイナリセーフな文字列が使えます。
なので画像もキーにできる。
512MBまでOK

データタイプ

Redisがサポートするのは文字列だけではなく、次の7種類のデータタイプをサポートします。

Strings

バイナリセーフな文字列。なので画像も保存できるようですね。
これも512MBまでです。
使い方

// 格納
> set <KEY> <VALUE>

// 取得
get <KEY>

> set mylist a
OK

> get mylist
a

Lists

配列みたいなものです(正確には Linked List)
使い方

// 格納
rpush <KEY> <VALUE>

// 取得

> rpush mylist A
(integer) 1

> rpush mylist B
(integer) 1

> lrange mylist 0 -1
1) "A"
2) "B"

Hash

使い方

hmset <HashName> <KEY> <VALUE> ...

> hmset myhash name tarou birthday 19860101
OK

> hmget myhash name
1) "tarou"

> hmget myhash birthday
1) "19860101"

Sets

順序をもたないユニークなバリューの集合体。だそうです。
ソートはされてません

> sadd myset 1 2 3
(integer) 3

> smembers myset
1) "1"
2) "2"
3) "3"

Sorted Sets

ソートされたSets
Sets と同じものとしてもいいのかもしれません

> zadd myscores 120 john
(integer) 1
> zadd myscores 110 paul
(integer) 1
> zadd myscores 100 george
(integer) 1
> zadd myscores 80 ringo
(integer) 1

> zrange myscores 0 -1
1) "ringo"
2) "george"
3) "paul"
4) "john"

> zrevrange myscores 0 -1
1) "john"
2) "paul"
3) "george"
4) "ringo"

Bitmaps

Hyperloglogs