Redisの使い方


サーバーの起動

redisサーバーの起動 redis-server
redisクライアントの起動 redis-cli

データを扱う

データを格納する  set key value
valueを取得 get key
複数のデータを一気に格納  mset key1 value1 key2 value2
複数のデータを一気に取得  mget key1 value1 key2 value2

帰ってくるデータの型はstring型だが、

$mset email hoge@icloud score 100 name tarou
#=>OK
$mget email score name

#=>1) "hoge@icloud"
#=>2) "100"
#=>3) "tarou"

1だけ増やす incr score
1だけ減らす decr score
Nだけ増やす incrby score N
Nだけ減らす decrby score N
で数値の増減も可能。

keyの一覧取得 keys *
keyが存在するか exists key(存在したら1,しなかったら0が帰ってくる)
keyの名前をkey1からkey2に変更する rename key1 key2
keyの削除 del key
keyにsecondsで消えるような有効期限をつける expire key seconds

List型のデータを格納する

[key][value]
color red green blue yellow
というlint型のデータを格納する。(redの方がleft,yellowの方がright)

データを右に追加 rpush key value
データを左に追加 lpush key value
右のデータを削除 rpop key value
左のデータを削除 lpop key value
0番目からN番目のデータの確認 lrange key 0 N+1
先頭から末尾のデータの確認 lrange key 0 -1
N番目のvalueを取得 lindex key N-1
valueの数を取得 llen key
0からN番目を切り取る ltrim key 0 N-1

Set型のデータを格納する

(Set型はvalueの順番は管理しない)
追加 sadd key value
削除 srem key value
一覧 smembers key
和集合 sunion key1 key2
積集合 sinter key1 key2
差集合 sdiff key1 key2

Sorted Set型(ソート済みセット)

追加 zadd key score value
削除 zrem key score value
低い順に一覧 zrange key 0 -1
高い順に一覧 zrevenge key 0 -1
ランク zrank
keyにおけるvalueのランクを知りたい時(低い順) zrank key value
keyにおけるvalueのランクを知りたい時(高い順) zrevrank key value

qiita.rb
zadd ranking 1 a 2 b 3 c 4 d
#=>4
zrange ranking 0 -1
#=>1) "a"
#=>2) "b"
#=>3) "c"
#=>4) "d"
zrevrange ranking 0 -1
#=>1) "d"
#=>2) "c"
#=>3) "b"
#=>4) "a"
zrank ranking a
#=>0
zrevrank ranking a
#=>3