memcachedとRedis

インメモリデータベース

memcached

揮発性key-valueストア

http://memcached.org/

クラスタ構成(クライアント側)

Redis

永続性key-valueストア(定期的にディスクに書き出す)

http://redis.io/

クラスタ構成(サーバ側)

起動コマンド

>Linuxの場合

memcached -u nobody -m 64 -p 11211 -d

memcached -u nobody -m 64 -p 11211 -l 127.0.0.1 -d

>Windowsの場合

memcached.exe -d install サービス登録

memcached.exe -d start

memcached.exe -d stop

memcached.exe -d uninstall

net start "memcached Server"

net stop "memcached Server"

基本コマンド

telnet localhost 11211

stats

stats items

stats slabs

コマンド <key> <flag> <expires> <byte>

flag 0:圧縮なし、1:圧縮あり

expires 0:無期限

add key 0 0 X

set key 0 0 X

replace key 0 0 X

append key 0 0 X 最後から追加

prepend key 0 0 X 最初から追加

get key

delete key

set num 0 0 1

8

incr num 1

9

decr num 3

6

flush_all

quit

Ubuntuにインストール

sudo apt-get install redis-server

Upgrade

redis-server --version

sudo add-apt-repository ppa:chris-lea/redis-server

sudo apt-get update

sudo apt-get install redis-server

基本コマンド

$ redis-server サーバの起動

$ redis-cli クライアントの起動と終了

> exit

> shutdown サーバの停止

select n データベースの選択

bgsave データベースの保存

keys *

keys *m*

exists key あり:1,なし:0

randomkey

type key

flushdb カレントのキーを全て破棄

expire key seconds # Set timeout

ttl key # Get the time to live

persist key # Remove the expiration

★データ型(5種類)

String

set key value

mset key value key value

get key

mget key key

rename key1 key2

del key

incr key

incrby key 3

decr key

decrby key 3

List 順序あり

時系列的なデータ

(l/r)push key value

(l/r)pop key

lrange key 0 5

lrange key 0 -1 一覧表示

lindex key 3

llen key

ltrim key 0 2

Set 順序なし、重複不可

タグ、ソーシャルグラフ

sadd key value

srem key value

smembers key

sunion key1 key2 和集合

sinter key1 key2 積集合

sdiff key1 key2 差集合

sunionstore key key1 key2

Sorted set 個々の要素にスコア付き

ランキング

zadd key score value

zrem key value

zrange key 0 -1

zrevrange key 0 -1

zrank key value

zrevrank key value

Hash 連想配列

hset key key1 value1

hmset key key1 value1 key2 value2

hget key key1

hmget key key1 key2

hlen key

hkeys key

hvals key

hgetall key

★ソート(List、Set、Sorted set)

sort key

sort key desc

sort key desc limit 0 3

sort key alpha

sort key alpha desc

★Transaction

multi

...

exec / discard

Redis基于Reactor模式

実例1

実例2