Ubuntu 16.04
Sponsored Link

Redis : 基本操作 #2
2016/09/06
 
専用のクライアントプログラム「redis-cli」を利用した場合の Redis の基本操作です。
以下の例の他にも非常に多くのコマンドが用意されています。詳細は本家サイトを参照ください。
⇒ http://redis.io/commands
[1] 基本的なキー操作の例です。
root@dlp:~#
redis-cli -a password
# キーに値をセットする
127.0.0.1:6379> set key01 value01 
OK

# キーの値を参照する
127.0.0.1:6379> get key01 
"value01"

# キーを削除する
127.0.0.1:6379> del key01 
(integer) 1

# キーが存在するか確認する (1なら真)
127.0.0.1:6379> exists key01 
(integer) 1

# キーがすでに存在しない場合のみデータをセットする
# 結果が 0 の場合はキーが存在したためデータは更新されなかったことを意味する
127.0.0.1:6379> setnx key01 value02 
(integer) 0

# 有効期限を設定してキーをセットする (下例は 60秒)
127.0.0.1:6379> setex key01 60 value01 
OK

# 既存のキーに有効期限を設定する
127.0.0.1:6379> expire key02 30 
(integer) 1

# キーに値を追加する
127.0.0.1:6379> append key01 value02 
(integer) 15

# キーの部分文字列を返す : [キー] [開始位置] [終了位置]
127.0.0.1:6379> substr key01 0 3 
"valu"

127.0.0.1:6379> set key02 1 
OK

# キーの値に 1 をプラスする
127.0.0.1:6379> incr key02 
(integer) 2

# キーの値に指定数をプラスする
127.0.0.1:6379> incrby key02 100 
(integer) 102

# キーの値に 1 をマイナスする
127.0.0.1:6379> decr key02 
(integer) 101

# キーの値に指定数をマイナスする
127.0.0.1:6379> decrby key02 51 
(integer) 50

# 複数キーの値をまとめてセットする
127.0.0.1:6379> mset key01 value01 key02 value02 key03 value03 
OK

# 複数キーの値をまとめて参照する
127.0.0.1:6379> mget key01 key02 key03 
1) "value01"
2) "value02"
3) "value03"

# 既存のキーをリネームする
127.0.0.1:6379> rename key01 key02 
OK
127.0.0.1:6379> mget key01 key02 
1) (nil)
2) "value01"

# 既存のキーをリネームするがリネーム後のキーがすでに存在する場合は実行されない
127.0.0.1:6379> renamenx key02 key03 
(integer) 0
127.0.0.1:6379> mget key02 key03 
1) "value01"
2) "value03"

# 現在のデータベースのキーの数を返す
127.0.0.1:6379> dbsize 
(integer) 4

# 特定のキーを別のデータベースへ移動する
127.0.0.1:6379> move key03 1 
(integer) 1
127.0.0.1:6379> select 1 
OK
127.0.0.1:6379[1]> get key03 
"value03"

# 現在のデータベースのキーを全て削除する
127.0.0.1:6379> flushdb 
OK

# 全てのデータベースのキーを全て削除する
127.0.0.1:6379> flushall 
OK
127.0.0.1:6379> quit 

# 標準出力からデータを読み取って処理する
root@dlp:~# echo 'test_words' | redis-cli -a password -x set key01 
OK
root@dlp:~# redis-cli -a password get key01 
"test_words\n"
[2] Redis での CAS (Check And Set) 操作は watch コマンドにより実行可能です。
最終的に exec コマンドで変更を反映しますが、multi ~ exec コマンド間で他プロセス等により値が変更された場合は exec による変更の反映は行われません。
# キーを watch する
127.0.0.1:6379> watch key01 
OK

127.0.0.1:6379> get key01 
"value01"
127.0.0.1:6379> multi 
OK
127.0.0.1:6379> set key01 value02 
QUEUED

127.0.0.1:6379> exec 
1) OK
 
Tweet