redis

  • 投稿者:
  • 投稿カテゴリー:redis

特徴

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