redisのインストールと使い方
今更ながらredisについてお勉強。
インストールまではやってたのですが、なかなか使う機会がなく。。
redisって?
「危険なほどのスピード」とか言われてますね。
実際の機能としては永続化できるオンメモリ型のKVSという点がよく注目されていますが、多様なデータ型が魅力的なようです。
リアルタイムランキング機能としてソーシャルゲームでよく使われてるみたいですね。
インストール
公式サイト通りに進めばOKです。
http://redis.io/download
# wget http://redis.googlecode.com/files/redis-2.6.13.tar.gz # tar xzf redis-2.6.13.tar.gz # cd redis-2.6.13 # make
redisをちょっと試したい、、!ぐらいでしたら上記で終わりでいいですが、インストールしたかったらその後make installすればよいです。
# make install
データ型
- 文字列型
基本的な型ですね。
- リスト型
文字列型を配列に格納できるようです。
- セット型
文字列型の順不同の集合みたいですが、値が重複しないという特徴があるようです。
あと集合演算(diffとかunionとか)のコマンドが用意されてるとか。
- ハッシュ型
いわゆる連想配列。
使ってみる
文字列型
- 追加
redis 127.0.0.1:6379> SET hoge fuga OK
- 取得
redis 127.0.0.1:6379> GET hoge "fuga"
- 削除
redis 127.0.0.1:6379> DEL hoge (integer) 1 redis 127.0.0.1:6379> GET hoge (nil)
リスト型
- 先頭に追加
redis 127.0.0.1:6379> LPUSH test_list 1 (integer) 1 redis 127.0.0.1:6379> LPUSH test_list 0 (integer) 2 |<< -末尾に追加 >|| redis 127.0.0.1:6379> RPUSH test_list 2 (integer) 3
- 参照
redis 127.0.0.1:6379> LRANGE test_list 0 -1 1) "0" 2) "1" 3) "2"
- 先頭を取得
redis 127.0.0.1:6379> LPOP test_list "0" redis 127.0.0.1:6379> LRANGE test_list 0 -1 1) "1" 2) "2"
- 末尾を取得
redis 127.0.0.1:6379> RPOP test_list "2" redis 127.0.0.1:6379> LRANGE test_list 0 -1 1) "1"
セット型
- hogeとfugaを追加
redis 127.0.0.1:6379> SADD test_set hoge (integer) 1 redis 127.0.0.1:6379> SADD test_set fuga (integer) 1 ||> -test_setの一覧取得 >|| redis 127.0.0.1:6379> SMEMBERS test_set 1) "fuga" 2) "hoge"
- 重複は登録不可
redis 127.0.0.1:6379> SADD test_set fuga (integer) 0 redis 127.0.0.1:6379> SMEMBERS test_set 1) "fuga" 2) "hoge"
- 削除
redis 127.0.0.1:6379> SREM test_set fuga (integer) 1 redis 127.0.0.1:6379> SMEMBERS test_set 1) "hoge"
ハッシュ
- key1にhogeを、key2にfugaを追加
redis 127.0.0.1:6379> HSET test_hash key1 hoge (integer) 1 redis 127.0.0.1:6379> HSET test_hash key2 fuga (integer) 1
- test_hashの値を全て取得
redis 127.0.0.1:6379> HGETALL test_hash 1) "key1" 2) "hoge" 3) "key2" 4) "fuga"
- keyの一覧を取得
redis 127.0.0.1:6379> HKEYS test_hash 1) "key1" 2) "key2"
- valueの一覧を取得
redis 127.0.0.1:6379> HVALS test_hash 1) "hoge" 2) "fuga"
- key1の値を取得
redis 127.0.0.1:6379> HGET test_hash key1 "hoge"
- key1を削除
redis 127.0.0.1:6379> HDEL test_hash key1 (integer) 1 redis 127.0.0.1:6379> HGETALL test_hash 1) "key2" 2) "fuga"
これらはまだまだ基本的なことです。
どんどん使っていきたいと思います(特に集合演算関連はおもしろそう)