存在するか確認します。存在する場合は”1”が返ります。存在しない場合は”0”が返ります。キーに対応する値が空文字列でも”1”が返ることに注意してください。reply(整数値)。キーが存在しない場合は何の操作も行われません。返り値は削除されたキーの数となります。reply(整数値)。格納されている値の型を文字列型で返します。“set”のいずれかです。“none”はキーが存在しない場合に返ります。Note“sortedset”はないのか?要確認。reply(ステータスコード)。(nはデータベース内のキーの数。キーとパターンの数は制限されていると想定している。マッチするすべてのキーを空白区切りの文字列で返します。foobar”という文字列が返ります。この操作は計算時間O(n)となっているが、定数時間は非常に小さいものとなっています。RedisはエントリーモデルのノートPCで100万キーを持つデータベースを40ミリ秒で読み込みます。このコマンドは注意深く使わないとデータベース性能を落としてしまうということを意識するにこしたことはありません。言い換えると、このコマンドはデバッグやデータベースのスキーマの変更を行うなどの特別な操作を除いて使うべきではありません。通常のコードでは使わないでください。オブジェクトのサブセットをくっつけたい場合はRedisセット型を使ってください。O(1)現在選択してされているデータベースからランダムでキーをひとつ選択して返します。reply(単一行)が返ります。具体的にはランダムに選択されたキーまたはデータベースが空のときは空文字列が返ります。古いキーと新しいキーの名前が一緒だった場合はエラーが返ります。存在する場合は上書きされます。reply(ステータスコード)が返ります。reply(整数値)が返ります。現在選択されているデータベースのキーの数を返します。タイムアウト時間が過ぎたらキーはサーバによって自動的に削除されます。タイムアウト時間が設定されたキーはRedis用語では”volatile”(揮発性がある)と呼ばれます。揮発性のキーは他のキーのようにディスクに書き込まれます。タイムアウト時間は他のデータセットの性質と同様に永続的なものです。揮発性のキーを持っているデータセットを保存してからサーバを停止しても、Redis内の時間経過は止まりません。Redisはディスクに保存する際にそのキーがいつ無効になるかを残り時間ではなくUNIX時間で記録しているのでこれが実現できるのです。取得できるような残り秒数ではなく、UNIX時間の形で絶対時刻を有効期限を指定します。File(追記専用ファイル)の永続モードの実装のために作成されました。コマンドに変換されます。プログラマが単純に指定したキーを将来指定しあ時刻に無効にさせる、というような用途で使うことができます。2.1.3からすでにタイムアウト時間を設定したキーに対して、タイムアウト時間を更新することが出来るようになりました。コマンドを使ってタイムアウトを無効にすることも出来るようになりました。コマンドで削除されたときにタイムアウトが削除されます。2.1.3以上では揮発性のキーに対する書き込み制限は一切ありません。現在の安定版2.0.0を含むそれ以前のバージョンでは次のような制限があります。操作に対しては特別なセマンティクスがあります。基本的に揮発性のキーは書き込みの対象となった場合は破壊されます。このコマンドで確認できることによって、Redisクライアントが与えられたキーがあとどれくらいデータセットの一部であるか確認することができます。設定されていない場合は”-1”が返ります。インデックス付けされたデータベースを選択します。reply(ステータスコード)が返ります。データベースに移します。無事移動できた場合のみ”1”を返し、対象のキーがすでに指定したデータベースに存在する、または対象のキーが見つからない場合は”0”を返します。ロックのために使うこともできます。reply(整数値)が返ります。現在選択されているデータベースからすべてのキーを削除します。このコマンドは決して失敗しません。reply(ステータスコード)が返ります。現在選択されているものだけでなく、存在するすべてのデータベースからすべてのキーを削除します。このコマンドは決して失敗しません。reply(ステータスコード)が返ります。コマンドはRedisトランザクションの基礎です。Redisトランザクションでは単一ステップでひとまとめのRedisコマンドを実行出来るようにしてあります。このトランザクションでは2つのことが保証されています:トランザクション中のすべてのコマンドはシリアライズ化され、順番に実行されます。他のクライアントからのリクエストがRedisトランザクションの実行中に行われることは決してありません。このことによって一連のコマンドは単一のアトミックな操作として扱われることが保証されます。すべてのコマンドが実行されるか全く実行されないかのどちらかとなります。コマンドはトランザクション中のすべてのコマンドの実行のトリガーとなります。呼べばすべての操作が実行されます。File(追記専用ファイル、以下AOF)が有効になっている場合があります。この場合、Redisトランザクションに関するコマンドは操作が完了するまではAOFにログを録ります。したがってもしRedisサーバがクラッシュする、もしくはシステムアドミニストレータによってkillされたとき、トランザクションの操作の中から部分的に実行された分が登録される、ということが起きえます。set)操作に似た方法でキーの束を楽観的ロックすることが可能になりました。これについては本文のあとの方で説明します。コマンドを使って登録します。コマンドはつねにOKを返します。このときユーザは複数のコマンドを発行できます。これらのコマンドを実行する代わりに、Redisではキューにためます。呼ばれたタイミングで実行されます。呼ぶとトランザクションキューをフラッシュして、トランザクションから出ます。トランザクション中の各コマンドの返り値を要素に持った配列を返します。要素の並び順はコマンドの並び順に一致します。実行時にうまく動作しなくてもかまいません。プロトコルレベルではより明確に見て取れます。replyを返してきました。そのうち一つは”+OK”でもう一つは”-ERR”です。ユーザにエラーを提供する方法はクライアントライブラリ次第です。Warningコマンドがエラーをあげたときですら、キューに入っているそれ以外のコマンドは処理されます。コマンドはキューに入りませんでした。トランザクションを中止するために用いられます。それ以降のコマンドは実行されません。クライアントの状態がトランザクション外では再度通常となります。Set)ビヘイビアを提供するために用います。されたキーは変更を検知するために監視されています。トランザクションが失敗したことを通知するためにnilオブジェクトを返します。replyが返ります)たとえばキーを自動的に1増やさないといけないという状況を考えてみましょう。$valこのサンプルは1つのクライアントが限られた時間で動作する場合であれば上手く動くと思います。複数のクライアントが同時にキーをインクリメントしようとしたら、競合状態に陥ります。クライアントAとクライアントBが古い値、ここでは10としますが、を読んだとします。この値は両方のクライアントによってインクリメントされ11となります。最終的にそのキーの値として12ではなく11がセットされてしまうのです。値を修正した場合はトランザクションは失敗します。この場合出来ることは、再度操作を実行して今度は競合状態にならないことを願うだけです。このような形式でのロックは楽観的ロックと呼ばれ、複数のクライアントが非常に多くのキーにアクセスするような多くの問題で非常に有力なロック形式となっています。衝突が起きる、ということはあまりありません。普通は操作を何度もやり直すということはありません。実際には何をするものなのでしょうか。条件をつけるコマンドと理解してください。したキーを修正しなかった場合のみトランザクション処理を行うという条件をつけるのです。修正されてしまった場合はトランザクションは実行されません。複数回呼ぶことが出来ます。呼び出し時まで監視は有効になっています。クライアントの接続が閉じた時も同様です。コマンドを使うこともできます(引数はありません)。いくつかのキーを楽観的ロックしたあとに、それらのキーを変更したいという理由でトランザクションをしたい時があります。これでコネクションは新しいトランザクションの為に使えます。コマンドを使ってアトミックな操作を作成する良い例を次に示します。実装できなかったとわかるでしょう。ソート済みセットの低いスコアの方から要素をアトミックにポップするコマンドです。失敗したら(nil値を返したら)、単純に操作を再実行するだけです。replyを返します。replyが返ります。dstkey])¶リスト、セット、ソート済みセット内の要素をキーに対応する値でソートします。デフォルトではソートは倍精度浮動小数の値で比較されます。次はは最も単純な形のソートです。数字のリストを保持しています。返り値は昇順に並び替えられたリストとなります。使えますが、デフォルトで指定されているので使う必要はありません。