特徴
・インメモリデータベース(すごく速い!)
大量かつ高速に処理するべきもので対応
・永続化
定期的にディスクにかきだすため、少し信頼性があがる
・多くの言語から操作可能
・複製や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