Redisコマンドチートシート

Redisコマンドチートシート

前提

項目
redis-cli 3.0.504
redis-server 3.0.504

バージョン確認

クライアントバージョン確認コマンドです。

C:\>redis-cli --version
redis-cli 3.0.504

サーババージョン確認コマンドです。

C:\>redis-server --version
Redis server v=3.0.504 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=a4f7a6e86f2d60b3

サーバ起動

サーバ起動します。コマンドプロンプトは管理者モードで起動しておきます。

C:\>cd C:\Program Files\Redis
C:\>redis-server redis.windows.conf

終了する場合は、ctrl + cを押します。

クライアント起動

クライアント起動します。

C:\>cd C:\Program Files\Redis
C:\>redis-cli
127.0.0.1:6379>

String型

項目
key id
value 100

set key valueでkeyにvalueをセットします。

get keyで、keyに対するvalueを取得します。

127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set id 100
OK
127.0.0.1:6379> get id
"100"

del keyでkey自体を削除します。

127.0.0.1:6379> del id
(integer) 1
127.0.0.1:6379> keys *
(empty list or set)

半角スペース区切りでkeyを複数指定して、複数のkeyを削除することが出来ます。

127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set id 100
OK
127.0.0.1:6379> set name takahashi
OK
127.0.0.1:6379> keys *
1) "name"
2) "id"
127.0.0.1:6379> del name id
(integer) 2
127.0.0.1:6379> keys *

mset,mget複数キー追加、複数キー取得することが出来ます。

127.0.0.1:6379> keys *
1) "name"
2) "id"
127.0.0.1:6379> mget id name
1) "100"
2) "takahashi"

List型

項目
key id

List型は1つのキーに対して複数のvalueを持ちます。重複要素を許します。

rpush key valueでkeyにvalueを末尾に追加します。

lrange key 0 -1でList型のキーの要素を全部取得します。

127.0.0.1:6379> rpush id 200
(integer) 1
127.0.0.1:6379> rpush id 200
(integer) 2
127.0.0.1:6379> lrange id 0 -1
1) "200"
2) "200"

Set型

項目
key id

Set型は1つのキーに対して複数のvalueを持ちます。valueは順不同で、重複要素を許しません。

sadd key value1 value2 value3 ...で、keyに対して複数の値を保持します。

smembers keyでSet型のキーにセットしている値一覧取得します。

127.0.0.1:6379> sadd id 10 20 30 40
(integer) 4
127.0.0.1:6379> smembers id
1) "10"
2) "20"
3) "30"
4) "40"

scard keyでSet型のキーが保持する値の件数を返します。

127.0.0.1:6379> scard id
(integer) 4

srem key valueで値を削除します。

127.0.0.1:6379> srem id 20
(integer) 1
127.0.0.1:6379> smembers id
1) "10"
2) "30"
3) "40"

Hash型

項目
key hhh

Hash型は1つのキーに対して複数のfield-valueペアを持ちます。ペアの上限は4,294,967,295 (2^32 – 1)なので約40億強になります。

ほとんどのコマンドは(O(1))です。

hsetコマンドでキーを指定、フィールドバリューペアを指定します。

127.0.0.1:6379> hset hhh k1 v1
(integer) 1
127.0.0.1:6379> hset hhh k2 v2
(integer) 1

hgetコマンドでキーを指定、フィールドバリューペアのキーを指定してバリューを取得します。

127.0.0.1:6379> hget hhh k1
"v1"
127.0.0.1:6379> hget hhh k2
"v2"

hlenコマンドでキーを指定してフィールドバリューペアの数を取得します。

127.0.0.1:6379> hlen hhh
(integer) 2

hkeys key (O(n))コマンドで全フィールドを取得します。

127.0.0.1:6379> hkeys hhh
1) "k1"
2) "k2"

hval key(O(n))コマンドで全バリューを取得します。

127.0.0.1:6379> hvals hhh
1) "v1"
2) "v2"

hgetall key(O(n))コマンドで全フィールドと全バリューを取得します。

127.0.0.1:6379> hgetall hhh
1) "k1"
2) "v1"
3) "k2"
4) "v2"

hdelコマンドでキーとフィールド指定でフィールドを削除します。

127.0.0.1:6379> hdel hhh k2
(integer) 1
127.0.0.1:6379> hget hhh k2
(nil)

multi exec

Redisにはトランザクションの概念があります。

multiコマンド実行してトランザクション開始、execコマンドでトランザクション内のコマンドを実行します。この間、他のリクエストからの割込みはできません。

127.0.0.1:6379> multi
OK
127.0.0.1:6379> sadd key val1 val2
QUEUED
127.0.0.1:6379> sadd key val3
QUEUED
127.0.0.1:6379> srem key val1
QUEUED
127.0.0.1:6379> exec
1) (integer) 2
2) (integer) 1
3) (integer) 1
127.0.0.1:6379> keys *
1) "key"
127.0.0.1:6379> smembers key
1) "val2"
2) "val3"

execコマンドを実行せずにサーバとの接続が切れると、multi ~ exec間のコマンドは実行されません。

discard

multiコマンド実行してトランザクション開始、いくつかコマンドを実行(内部的にはキューに入る)したあとにトランザクション中止したい場合は、discardコマンドを実行します。

127.0.0.1:6379> get id
"566"
127.0.0.1:6379> multi
OK
127.0.0.1:6379> incr id
QUEUED
127.0.0.1:6379> incr id
QUEUED
127.0.0.1:6379> incr id
QUEUED
127.0.0.1:6379> discard
OK
127.0.0.1:6379> get id
"566"

コマンドは内部的にはキューに入るので、discardコマンドはキューをフラッシュするコマンドです。Redisでは、rollbackはサポートされていません。

exists

existsコマンドでキーがRedisに存在するか確認します。存在する場合1を返し、存在しない場合0を返します。

127.0.0.1:6379> exists xxx:1
(integer) 1
127.0.0.1:6379> exists xxx:0
(integer) 0

type

typeコマンドでキーの方を調べます。

127.0.0.1:6379> type hhh
hash
127.0.0.1:6379> type sss
string

expire,ttl

項目
key xxx:1

expireコマンドでキーに有効期限(TTL)を持たせます。有効期限が過ぎると、キーは自動的に破棄されます。

127.0.0.1:6379> expire xxx:1 10
(integer) 1
127.0.0.1:6379> ttl xxx:1
(integer) 6
127.0.0.1:6379> ttl xxx:1
(integer) 3
127.0.0.1:6379> ttl xxx:1
(integer) -2

ttlコマンドで残りの有効期限の秒数をチェックできます。有効期限が切れるとttlコマンドは-2を返します。

キー作成時に有効期限を設定することもできます。

127.0.0.1:6379> set id 50 ex 10
OK

Document

Documentation
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました