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
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント