雑記

インフラのことだったりプログラムのことだったりどうでもいいこと書いたり。要は雑記。

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

データ型

  1. 文字列型

基本的な型ですね。

  1. リスト型

文字列型を配列に格納できるようです。

  1. セット型

文字列型の順不同の集合みたいですが、値が重複しないという特徴があるようです。
あと集合演算(diffとかunionとか)のコマンドが用意されてるとか。

  1. ハッシュ型

いわゆる連想配列

使ってみる

文字列型

  • 追加
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"


これらはまだまだ基本的なことです。
どんどん使っていきたいと思います(特に集合演算関連はおもしろそう)