特徴
・インメモリデータベース(すごく速い!)
大量かつ高速に処理するべきもので対応
・永続化
定期的にディスクにかきだすため、少し信頼性があがる
・多くの言語から操作可能
・複製やhashの割り振りがきれい
・KVS(Key Value Store)
複雑なValueをもつことが可能
以下がValueのDataType
List-順番に並べた複数の要素(途中で要素の追加など苦手、時系列的なデータ)
String-個々の要素
Set-順不同の複数の要素、重複を許さない(タグ、ソーシャルグラフ)
Sorted Set-Setの特徴を持ちつつ、個々の要素にスコアつき(ランキング表)
Hash-連想配列。わかりやすいラベルと値のセット
インストールと操作方法
root@hostname:/home/shimizu# aptitude install redis-server
以下の新規パッケージがインストールされます:
libjemalloc1{a} redis-server
...
root@hostname:/home/shimizu# redis-server --version
Redis server version 2.4.14 (00000000:0)
### shutdown ###
root@hostname:/home/shimizu# redis-cli
redis 127.0.0.1:6379> shutdown # サーバにデータを保存
redis 127.0.0.1:6379> exit # コンソールからでる
### データベースの選択(番号で指定する、defaultは0) ###
root@hostname:/home/shimizu# redis-cli
redis 127.0.0.1:6379> select 0
OK
### データの保存(バックグラウンドで保存のプロセスが起動する) ###
redis 127.0.0.1:6379> bgsave
Background saving started
### keyの登録 ###
redis 127.0.0.1:6379> set key value
OK
redis 127.0.0.1:6379> get key
"value"
### 複数登録 ###
redis 127.0.0.1:6379> mset key2 value2 key3 value3
OK
redis 127.0.0.1:6379> mget key2 key3
1) "value2"
2) "value3"
### 値の増減 ###
redis 127.0.0.1:6379> set key3 111
OK
redis 127.0.0.1:6379> get key3
"111"
redis 127.0.0.1:6379> incrby key3 222
(integer) 444
redis 127.0.0.1:6379> get key3
"444"
### 存在の確認 ###
redis 127.0.0.1:6379> exists key
(integer) 1
redis 127.0.0.1:6379> exists keykey
(integer) 0
### すべてのkeyを表示可能 ###
redis 127.0.0.1:6379> keys *
1) "key2"
2) "key3"
3) "key"
### key名の変更 ###
redis 127.0.0.1:6379> rename key keynew
OK
redis 127.0.0.1:6379> keys *
1) "keynew"
2) "key2"
3) "key3"
redis 127.0.0.1:6379> keys
### keyの期限を設ける ###
redis 127.0.0.1:6379> expire key3 5
(integer) 1
redis 127.0.0.1:6379> exists key3
(integer) 0
### key名をランダムに返す ###
redis 127.0.0.1:6379> randomkey
"keynew"
### List型の管理 ###
redis 127.0.0.1:6379> rpush mycolor pink
(integer) 1
redis 127.0.0.1:6379> rpush mycolor red
(integer) 2
redis 127.0.0.1:6379> rpush mycolor green
(integer) 3
redis 127.0.0.1:6379> lrange mycolor 0 3
1) "pink"
2) "red"
3) "green"
### 1つの値を取得 ###
redis 127.0.0.1:6379> lindex mycolor 1
"red"
### 要素の値を取得 ###
redis 127.0.0.1:6379> llen mycolor
(integer) 3