この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 29611|答える: 2

[レディス] Redisは詳細な説明のためにLuaスクリプトを使用しています

[リンクをコピー]
掲載地 2021/04/30 15:42:57 | | | |
Redisに関しては、誰もがよく使っており、最もよく使われているのはデータキャッシュです。

復習

RedisにおけるRDBとAOFの永続性の違い
https://www.itsvse.com/thread-9555-1-1.html

DockerのインストールはRedisキャッシュを実行します
https://www.itsvse.com/thread-8995-1-1.html

例として、Redisのキャッシュ貫通、キャッシュアバランチ、キャッシュのブレイクダウンについて説明します
https://www.itsvse.com/thread-8968-1-1.html

Redisのワイルドカードでキーを一括削除する
https://www.itsvse.com/thread-7957-1-1.html

CentOS 7インストール Redis 5.0.3チュートリアル
https://www.itsvse.com/thread-7201-1-1.html

CentOSのphp 5.5.7でredis拡張をインストールしてください
https://www.itsvse.com/thread-7200-1-1.html

Redisインスタンスに保存可能なキーは何個で、最大キーや値はどれくらいですか?
https://www.itsvse.com/thread-6848-1-1.html

redis chineseの問題は正しく表示できません
https://www.itsvse.com/thread-5032-1-1.html

Redisはリモートアクセスを可能にします
https://www.itsvse.com/thread-5011-1-1.html

WindowsがRedisサービスを起動できず、エラー1067:プロセスが予期せず終了します。
https://www.itsvse.com/thread-5010-1-1.html

CentOSはRedis 4.0.8をインストールしました
https://www.itsvse.com/thread-4614-1-1.html

Redisはリモート接続とアクセスパスワードを設定します
https://www.itsvse.com/thread-4101-1-1.html

REDISはデータキャッシュを空にします
https://www.itsvse.com/thread-4027-1-1.html

REDISの永続化設定と持続性のオフ
https://www.itsvse.com/thread-4012-1-1.html

redisにおけるセーブとbgsaveの違い
https://www.itsvse.com/thread-4010-1-1.html

Redisの2つの永続性手法と原則
https://www.itsvse.com/thread-4009-1-1.html

Redisには3つのスタート方法があります
https://www.itsvse.com/thread-4008-1-1.html

Redisによるコマンドラインウィンドウの隠し方法
https://www.itsvse.com/thread-2988-1-1.html

Redis ハッシュ ハッシュ ハッシュ値問題
https://www.itsvse.com/thread-2587-1-1.html

Redisを使う前に知っておくべき5つのこと
https://www.itsvse.com/thread-2580-1-1.html

Redisはデフォルトのポート番号を変更し、アクセスパスワードを設定します
https://www.itsvse.com/thread-2577-1-1.html

Redis Windows 64ビットダウンロード、公式ダウンロードアドレス
https://www.itsvse.com/thread-2576-1-1.html
redis 2.6.0以降、redisはLuaインタプリタを組み込み、Luaスクリプト評価を解析する評価コマンドを提供します。

構文:評価スクリプト numkeys keys args

パラメータ:

eval — Redisはluaスクリプトを解析するためのコマンドを提供します

スクリプト — Lua スクリプト

numkeys — キーネームパラメータセット内のキーの数を指定します

キー — キーネムパラメータの集合で、グローバル変数KEYS配列で表され、添字1から始まります

args — 1の添字から始まるグローバル変数の配列ARGVで表されるキー・値パラメータの集合


RedisでLuaを使用する利点

ネットワークのオーバーヘッドを削減しましょう。 ネットワークの遅延を減らすために、スクリプトの形で複数のリクエストを同時に送信することも可能です
原子操作。 REDISはスクリプト全体を実行し、他のコマンドは挿入されません。 したがって、スクリプト作成プロセス中に競合条件やトランザクションを気にする必要はありません。
復職した。 クライアントから送信された足音はredisに永続的に保存されるため、他のクライアントが同じロジックをコードで行わずにスクリプトを再利用できるようにします。

スクリプトの原子性

Luaスクリプトには時間のかかる操作やデッドループがあってはなりません。そうでなければredisは他のコマンドを受け付けず、スクリプトの実行を停止しません

Redisはすべてのスクリプトを実行する際に単一のLuaインタプリタを使用し、スクリプトが原子的に実行されることを保証します。つまり、スクリプトが実行中は他のスクリプトやredisコマンドは実行されません! したがって、現在のスクリプトが遅く動作している場合、サーバーは忙しいためコマンドを実行できないことがあります。例えば:

各スクリプトには最大実行時間の制限があり、デフォルト値は5秒です。 最大実行時間は、設定ファイルredis.confのlua-time-limitオプション、またはconfig getおよびconfig setコマンドで直接制御されます。 スクリプトの実行時間が最大に達したとき、Redisは積極的に終了させるのではなく、以下の手順を実行します。

(1) Redisがスクリプトの時間切れを記録している

(2) Redisは他のクライアントからのリクエストを再受け入れ始めますが、スクリプトキルコマンドの実行のみを受け入れ、nossave をシャットダウンします。

(3) スクリプトが読み取り操作のみを行う場合は、スクリプトキルコマンドを使って即座にスクリプトを停止します。 スクリプトが書き込み操作を行う場合、サーバーを停止するためにはシャットダウンのセーブ/ノーセーブコマンドのみが許可され、現在のデータがディスクに書き込まれないようにします。 (この時点でサーバーはダウンしており、データは保存されません)




スクリプトを実行してください。パラメータはキーと値が2で、コマンドは以下の通りです:


デッドループスクリプトの場合、以下のスクリプトを実行すると、redisが他のコマンドを処理できなくなり、停止します:

以下のコマンドで文字列型のデータを追加するスクリプトを試してみてください:

より複雑なスクリプトを実行し、キーの値が渡した値と等しい場合はキャッシュを削除し、それ以外は何でも実行してください。コマンドは以下の通りです:

実装結果は以下の通りです。



(終わり)




先の:.NET/C# ロック原理モニターは詳細な説明を提供します
次に:IIS削除、PUT Request 405 ソリューション
 地主| 掲載地 2021/05/10 9:18:34 |

ハイパーリンクのログインが見えます。
Redis Script Loadコマンドはスクリプトキャッシュに追加するために使われますが、すぐに実行されるわけではありません。

EVALコマンドはスクリプトキャッシュにもスクリプトを追加しますが、入力スクリプトを即座に評価します。

もし与えられたスクリプトがすでにキャッシュに存在している場合は、何のアクションも取られません。

スクリプトがキャッシュに追加された後、EVALSHAコマンドを通じてスクリプトのSHA1チェックサムを使ってスクリプトを呼び出すことができます。 (これはまた、同じスクリプトが異なるREDISサーバー上で同じsha1値を実行します

スクリプトはSCRIPT FLUSHが実行されるまで無限にキャッシュ内に留まることができます。



 地主| 掲載地 2021/05/12 11:38:55 |
luaスクリプトがキャッシュにあるかどうかを確認しましょう


Redisが再起動すると、Luaスクリプトは自動的にクリアされます、恒久的なものではありません

免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com