Redisをインストールと基本操作
開発環境でなんらかkvsを使いたいと思っていたところ、
WEB+DB PRESSでredisなるkvsが紹介されていたので、早速試してみる。
まずはインストール。
公式はコチラ
http://redis.io/
//redisをインストール cd /usr/local/src wget http://redis.googlecode.com/files/redis-2.6.10.tar.gz tar xzf redis-2.6.10.tar.gz cd redis-2.6.10 make make install
redis-serverで起動、そしてコマンドラインから操作するには、redis-cliから行う。
//redis起動 redis-server //redis-cli redis-cli //終了 shutdown //ディスクに書き出し bgsave
終了はredis-cliからshutdownしないと、メモリに残っているデータがなくなるとのこと。
shutdownするとbgsaveしてから終了するとのこと。
では次は実際にデータのやりとりをしてみる。
データの型は下記の種類があるそう。
データ型 | 概要 |
String | キーにひも付いた値 |
List | 順番に並べた複数の要素 |
Set | 順不同の複数の集合を扱う。重複を許さない |
Sorted Set | Setの特徴を持ちつつ、スコアという値で個々の要素に順列をつける |
Hash | キーにひも付くデータとして、キーと値を扱う |
Listはタイムライン的なもの、Sorted Setはランキング的なものに使えるそう。
では実際にそれぞれの動きを確認してみる。
■String
//値をset,get redis > set name mogmog OK redis > get name "mogmog" //複数の値をset,get redis > mset foo 1 moo 2 OK redis > mget foo moo 1) "1" 2) "2" //値が数値ならインクリメント、デクリメントが可能 redis > set num 1 OK redis > incr num (integer) 2 redis > get num "2" redis > decr num (integer) 1 redis > get num "1" redis > incrby num 10 (integer) 11 redis > get num "11" redis > decrby num 30 (integer) -19 redis > get num
■List
//値追加、右/左から R/LPUSH //値所得、右/左から //リスト表示 lrange 0 -1 redis > rpush mylist red (integer) 1 redis > rpush mylist green (integer) 2 redis > lpush mylist orange (integer) 3 redis > lrange mylist 0 -1 1) "orange" 2) "red" 3) "green" redis > lpop mylist "orange" redis > rpop mylist "green" redis > lrange mylist 0 -1 1) "red"
■Set
//値追加 SADD //値削除 SREM //値一覧 SMEMBERS redis > sadd myset 1 (integer) 1 redis > sadd myset 2 3 4 (integer) 3 redis > smembers myset 1) "1" 2) "2" 3) "3" 4) "4" redis > srem myset 3 (integer) 1 redis > smembers myset 1) "1" 2) "2" 3) "4" //和集合(AまたはB) SUNION //積集合(AかつB) SINTER //差集合 SDIFF redis > smembers myset 1) "1" 2) "2" 3) "3" 4) "4" redis > smembers myset_1 1) "3" 2) "4" 3) "5" 4) "6" redis > sunion myset myset_1 1) "1" 2) "2" 3) "3" 4) "4" 5) "5" 6) "6" redis > sinter myset myset_1 1) "3" 2) "4" redis > sdiff myset myset_1 1) "1" 2) "2"
Sorted Set
//追加、削除 ZADD/ZREM redis > zadd myzlist 1 mog (integer) 1 redis > zadd myzlist 3 ban (integer) 1 redis > zadd myzlist 6 hoge (integer) 1 redis > zadd myzlist 2 don (integer) 1 redis 127.0.0.1:6379> ZRANGE myzlist 0 -1 1) "mog" 2) "don" 3) "ban" 4) "hoge"
■Hash
//追加、削除 HSET,HDEL redis > hset myhash key val (integer) 1 redis > hget myhash key "val" redis > hmset myhash key val key_1 val_1 key_2 val_2 OK redis > hmget myhash key key_1 key_2 1) "val" 2) "val_1" 3) "val_2"
以上です。
次は、phpからredisを操作してみよう。
http://redis.io/clients
感謝致します。