redis処理オーダーの期限切れ自動キャンセル
1544 ワード
会社のショッピングモールのプロジェクトの中の1つの注文が期限切れになって自動的にキャンセルする問題、前に類似のプロジェクトをしたことがなくて、ネット上で関連する資料を探します
redisが2.8バージョン後にリリースした機能の一つですが、現在はほとんどの会社がこのバージョン以上を使っているのではないでしょうか.
この機能はデフォルトではオンになっていません.オンにするにはconfig set notify-keyspace-events Exを設定する必要があります.
設定可能なパラメータ
K:keyspaceイベント、イベントは_keyspace@__プレフィックスのパブリッシュ
E:keyeventイベント、イベントは_keyevent@__プレフィックスのパブリッシュ
g:一般的な、del、expire、renameなどの非特定のタイプのコマンド;
$:文字列固有のコマンド;
l:リスト固有コマンド;
s:集合特定コマンド;
h:ハッシュ特定コマンド;
z:秩序化集合特定コマンド;
x:キーが期限切れになって削除されたときに発生する期限切れイベント.
e:maxmemoreポリシーによってキーが削除された場合に発生するイベントを駆逐する.
A:g$lshzxeの別名であるため、「AKE」はすべてのイベントを意味する.
期限切れ通知類似のタイミングタスクが必要なのでExを設定すれば良いのですが、
redis-cliはredis実行に入ります
0番データを購読するすべての期限切れ通知
10秒の期限切れを設定し、デフォルトでは0番のライブラリを使用します.
PHPで実現しました
上の原理を理解して、実現は簡単で、PHPのreidsの拡張の方法はredisの命令とほとんど差がありません.
主にこの方法で、後のpsCallbackは期限切れのコールバック方法で、論理はすべて中で処理します.
ネット上には多くの関連するチュートリアルがあり、一度やったらここで記録します.間違いがあります.お兄さん、よろしくお願いします.
主に次の文章を見ました.
詳細はこちら
この方法は私が実現していません.最初の簡単で便利で、効率がいいと思います.
2つの方法の長所と短所がよく分からないので、知っているお兄さんが教えてくれて、感謝に堪えません.
1.redisのキースペース通知(keyspace notifications)
redisが2.8バージョン後にリリースした機能の一つですが、現在はほとんどの会社がこのバージョン以上を使っているのではないでしょうか.
この機能はデフォルトではオンになっていません.オンにするにはconfig set notify-keyspace-events Exを設定する必要があります.
設定可能なパラメータ
K:keyspaceイベント、イベントは_keyspace@__プレフィックスのパブリッシュ
E:keyeventイベント、イベントは_keyevent@__プレフィックスのパブリッシュ
g:一般的な、del、expire、renameなどの非特定のタイプのコマンド;
$:文字列固有のコマンド;
l:リスト固有コマンド;
s:集合特定コマンド;
h:ハッシュ特定コマンド;
z:秩序化集合特定コマンド;
x:キーが期限切れになって削除されたときに発生する期限切れイベント.
e:maxmemoreポリシーによってキーが削除された場合に発生するイベントを駆逐する.
A:g$lshzxeの別名であるため、「AKE」はすべてのイベントを意味する.
期限切れ通知類似のタイミングタスクが必要なのでExを設定すれば良いのですが、
redis-cliはredis実行に入ります
psubscribe __keyevent@0__:expired
0番データを購読するすべての期限切れ通知
SETEX order_9299292 10 99988
10秒の期限切れを設定し、デフォルトでは0番のライブラリを使用します.
PHPで実現しました
上の原理を理解して、実現は簡単で、PHPのreidsの拡張の方法はredisの命令とほとんど差がありません.
psubscribe(['__keyevent@1__:expired'],'psCallback');
主にこの方法で、後のpsCallbackは期限切れのコールバック方法で、論理はすべて中で処理します.
ネット上には多くの関連するチュートリアルがあり、一度やったらここで記録します.間違いがあります.お兄さん、よろしくお願いします.
2、タイミングタスク
主に次の文章を見ました.
詳細はこちら
この方法は私が実現していません.最初の簡単で便利で、効率がいいと思います.
2つの方法の長所と短所がよく分からないので、知っているお兄さんが教えてくれて、感謝に堪えません.