Redis : 基本操作 #22016/07/20 |
専用のクライアントプログラム「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 |
Sponsored Link |
|