バージョン確認
Redisサーバーの起動
redis-server --version
redis-server -v
redis-cli --version
redis-cli -v
サーバの起動
Redisサーバーの起動
redis-server
強制終了(※ データが保存されないことがある)
Ctrl + C
クライアントからサーバーに接続
別のターミナルでRedisサーバーに接続
redis-cli
クライアントの終了
exit
クライアントからサーバーの終了(※ データが保存される)
shutdown
動作の確認
redis 127.0.0.1:6379> set key val
OK
redis 127.0.0.1:6379> get key
"val"
データベースの選択
データベースは番号で管理され、名前をつけることはできません。
デフォルトでは0番のデータベースに接続されていますが、以下のように切り替えることができます。
select 1
select 2
とりあえず0に合わせておきましょう。
select 0
データの保存
Redisでは自動的にディスクに保存されますが、明示的にディスクに保存することができます。
bgsave
保存先は、Resisサーバーを起動したディレクトリに、「dump.rdb」のファイル名で保存されています。
Redisを起動するときは、同じディレクトリで起動する必要があります。
Strig型の書き込み
データの書き込み
set key value
まとめて書き込み
mset key value key value ...
データの取得
get key
まとめてデータの取得
mget key key key ...
「name」というキーに、「nakano」という値を格納します。
set name nakano
「name」キーを取得します。
get name
まとめて「email」キーと「score」キーに値を格納します。
mset email hoge@foo.com score 120
キーに格納された値をまとめて取得します。
mget name email score
数値を増減する
以下のコマンドでStringに数値が格納された場合に値を増減させることができます。
incr / incrby 増加幅
decr / decrby 減少幅
数値を1繰り上げます。
incr score
数値を取得します。
get score
数値を10減少させます。
decrby score 10
数値を取得します。
get score
KEYの操作
全キー検索
keys *
パターン検索
keys *m*
キーの存在確認
exists score
exists age
キーの名前を変更
set age 14
rename age nenrei
keys *
キーの削除
del nenrei
keys *
set age 14
キーの有効期限(5秒)
expire age 5
get age
ランダムにキーを返す
randomkey
List型の書き込み
左端に追加 lpush
右端に追加 rpush
左端を削除 lpop
右端を削除 rpop
要素を追加
rpush mycolor pink
rpush mycolor green
rpush mycolor red
rpush mycolor yellow
rpush mycolor blue
rpush mycolor purple
0番目から5番目まで取得
lrange mycolor 0 5
0番目から、最後から1番目まで取得
lrange mycolor 0 -1
右端を削除
rpop mycolor
lrange mycolor 0 -1
左端を削除
lpop mycolor
lrange mycolor 0 -1
2番目の要素を取得
lindex mycolor 2
要素の数を取得
llen mycolor
要素を0番目から2番目以外を削除
ltrim mycolor 0 2
lrange mycolor 0 -1
Set型の書き込み
追加 sadd
削除 srem
一覧 smembers
和集合 sunion
積集合 sinter
差集合 sdiff
要素の追加
sadd myset1 a
sadd myset1 b
sadd myset1 c
要素の一覧
smembers myset1
後から要素を追加
sadd myset1 d
要素の一覧(順不同で表示される)
smembers myset1
要素の削除
srem myset1 d
smembers myset1
別のSet型データを作成
sadd myset2 b
sadd myset2 c
sadd myset2 d
sadd myset2 e
smembers myset1
smembers myset2
和集合
sunion myset1 myset2
積集合
sinter myset1 myset2
差集合
sdiff myset1 myset2
和集合から新しいデータを作成
sunionstore myunion myset1 myset2
smembers myunion
Sorted Set型の書き込み
追加 zadd
削除 zrem
一覧 zrange
ランク zrank
要素を追加
zadd hs 22 nakano
zadd hs 50 tanaka
zadd hs 80 sato
zadd hs 21 suzuki
低い方から一覧を取得
zrange hs 0 -1
高い方から一覧を取得
zrevrange hs 0 -1
低い方から順位を取得
zrank hs nakano
高い方から順位を取得
zrevrank hs nakano
Hash型の書き込み
hset 追加
hmset 複数追加
hget 取得
hmget 複数取得
hlen 要素数を取得
hkeys キーをすべて取得
hvals 値をすべて取得
hgetall キー、値をすべて取得
値をセット
hset user name nakano
値を複数セット
hmset user email hoge@foo.com score 120
値を取得
hget user email
値を複数取得
hmget user name email score
要素数を取得
hlen user
キーをすべて取得
hkeys user
値をすべて取得
hvals user
キー、値をすべて取得
hgetall user
sort
List型のソート
String型を少ない順にソート
lpush myscore 22
lpush myscore 50
lpush myscore 80
lpush myscore 21
データ型の確認
type myscore
lrange myscore 0 -1
sort myscore
多い順にソート
sort myscore desc
0番目から3つ分、多い順にソート
sort myscore desc limit 0 3
アルファベット順のソート
keys *
lrange mycolor 0 -1
sort mycolor alpha
sort mycolor slpha desc
Set型のソート
smembers myset1
sort myset1 alpha
multi / exec
RDBのトランザクションに近いですが、処理の途中でサーバーがダウンした場合は途中の処理が実行されることがあります。
multi
処理
処理
処理
exec(実行)/discard(キャンセル)
multi
incr counter
incr visitor
exec