redis-cliでよく使うコマンド20選


最近Redisを触り始めたので、ドキュメント読みながら使用していたコマンドについて書いていきます。

準備

redis-cliを使う準備をします。

1. Redisのインストール

MacならbrewでInstall出来ます

$ brew install redis

2. Redisの起動

$ redis-server
または
$ redis-server --daemonize yes

3. redis-cliの起動

CLIが立ち上がります

$ redis-cli
127.0.0.1:6379>

コマンド一覧

ちなみにRedisのバージョンは 6.0.8時点です。

$ redis-server --version
Redis server v=6.0.8 sha=00000000:0 malloc=libc bits=64 build=25b38681eed52ae

1. SET

キーと値をRedisに登録する。すでにキーが存在していたら、上書きする。

redis> SET sample_key_1 "Hello Redis!"
OK
redis> SET sample_key_1 "Bye Redis!"
OK
redis> GET sample_key_1
Bye Redis! 

2. GET

キーの値を取得する

redis> SET sample_key_1 "Hello Redis!"
OK
redis> GET sample_key_1
Hello Redis!

3. SETNX

キーと値をRedisに登録する。
すでにキーが存在していても、上書きをしない。

redis> SET sample_key_1 "Hello Redis!"
OK
redis> SETNX sample_key_1 "Hello Redis!"
0
redis> GET sample_key_1
Hello Redis!

4. MSET

複数のキーと値を一括で登録する

redis> MSET sample_key_1 "Hello Redis!" sample_key_2 "Bye Redis!"
OK
redis> GET sample_key_1
Hello Redis!
redis> GET sample_key_2
Bye Redis!

5. MGET

複数のキーと値を一括で取得する

redis> MSET sample_key_1 "Hello Redis!" sample_key_2 "Bye Redis!"
OK
redis> MGET sample_key_1 sample_key_2
1) "Hello Redis!"
2) "Bye Redis!"

6. INCR

キーの値を1つインクリメントする

redis> SET sample_count 10
OK
redis> GET sample_count
10
redis> INCR sample_count
11
redis> GET sample_count
11

7. HSET / 8. HGET

HSET:hashを登録する
HGET:hashを取得する

redis> HSET hash sample_hash_key "hash_sample_value"
1
redis> HGET hash sample_hash_key
hash_sample_value

9. DEL

指定されたキーを削除する

redis> GET sample_key_1
Hello Redis!
redis> DEL sample_key_1
1
redis> GET sample_key_1
null

10. LPUSH / 11. RPUSH

LPUSH:リストの先頭に、指定されたすべての値を挿入する
RPUSH:リストの末尾に、指定されたすべての値を挿入する

redis> LPUSH sample_list "LPUSH 1" "LPUSH 2"
(integer) 2
redis> RPUSH sample_list "RPUSH 1" "RPUSH 2" "RPUSH 3"
(integer) 5

12. LRANGE

リストの中身のうち、1つめの引数の値から2つめの引数の値の間のIndexを取得する

redis> LPUSH sample_list "LPUSH 1" "LPUSH 2"
(integer) 2
redis> RPUSH sample_list "RPUSH 1" "RPUSH 2" "RPUSH 3"
(integer) 5
redis> LRANGE sample_list 0 1
1) "LPUSH 2"
2) "LPUSH 1"
redis> LRANGE sample_list 0 10
1) "LPUSH 2"
2) "LPUSH 1"
3) "RPUSH 1"
4) "RPUSH 2"
5) "RPUSH 3"
redis>> LRANGE sample_list 0 1
1) "LPUSH 2"
2) "LPUSH 1"
redis>> LRANGE sample_list 2 4
1) "RPUSH 1"
2) "RPUSH 2"
3) "RPUSH 3"

13. LINDEX

リストの中身のうち指定されたIndex番目のValueを取得する

redis> LPUSH sample_list "LPUSH 1" "LPUSH 2"
(integer) 2
redis> RPUSH sample_list "RPUSH 1" "RPUSH 2" "RPUSH 3"
(integer) 5
127.0.0.1:6379> LRANGE sample_list 0 10
1) "LPUSH 2"
2) "LPUSH 1"
3) "RPUSH 1"
4) "RPUSH 2"
5) "RPUSH 3"
redis> LINDEX sample_list 0
"LPUSH 2"
redis> LINDEX sample_list 3
"RPUSH 2"

14. LPOP / 15. RPOP

LPOP:リストの最初の要素を削除する
RPOP:リストの最後の要素を削除する

redis> LPUSH sample_list "LPUSH 1" "LPUSH 2"
(integer) 2
redis> RPUSH sample_list "RPUSH 1" "RPUSH 2" "RPUSH 3"
(integer) 5
127.0.0.1:6379> LRANGE sample_list 0 10
1) "LPUSH 2"
2) "LPUSH 1"
3) "RPUSH 1"
4) "RPUSH 2"
5) "RPUSH 3"
127.0.0.1:6379> LPOP sample_list
"LPUSH 2"
127.0.0.1:6379> LRANGE sample_list 0 10
1) "LPUSH 1"
2) "RPUSH 1"
3) "RPUSH 2"
4) "RPUSH 3"
127.0.0.1:6379> RPOP sample_list
"RPUSH 3"
127.0.0.1:6379> LRANGE sample_list 0 10
1) "LPUSH 1"
2) "RPUSH 1"
3) "RPUSH 2"

16. KEYS

指定したパターンに一致するキーをすべて取得する

redis> KEYS *
1) "sample_key_2"
2) "sample_hash"
3) "hash"
4) "sample_count"
5) "sample_key_1"
redis> KEYS sample*
1) "sample_key_2"
2) "sample_hash"
3) "sample_count"
4) "sample_key_1"
redis> KEYS sample*key*
1) "sample_key_2"
2) "sample_key_1"

17. EXPIRE

キーのタイムアウトを設定する。タイムアウトになると、キーが自動的に削除される。

redis> SET expire_key "EXPIRE Value!"
OK
redis> GET expire_key
EXPIRE Value!
redis> EXPIRE expire_key 3
1
redis> TTL expire_key
-2
redis> GET expire_key
null

18. TTL

タイムアウトのあるキーの残りの存続時間を返す
- -2を返す場合、キーが存在しない
- -1を返す場合、キーは存在するが、有効期限が関連付けられていない

redis> SET expire_key "EXPIRE Value!"
OK
redis> TTL expire_key
-1
redis> EXPIRE expire_key 10
1
redis> TTL expire_key
5
redis> TTL expire_key
-2

19. MULTI / 20. EXEC

MULTI:トランザクションの開始
EXEC:トランザクションの実行

redis> SET transaction_key "Start Transaction!"
QUEUED
redis> EXPIRE transaction_key 10
QUEUED
redis> TTL transaction_key
QUEUED
redis> EXEC
1) OK
2) (integer) 1
3) (integer) 10

終わりに

この記事での紹介は14個くらいのコマンドになりました。また気になったものがあれば追記します。

Redisのコマンドについてはこのドキュメントに沢山載っています。
https://redis.io/commands

ご参考ください。