最近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
ご参考ください。