ホームページ > バックエンド開発 > PHPチュートリアル > openresty が init_by_lua_file ステージ中に redis を共有メモリに読み取るメソッド

openresty が init_by_lua_file ステージ中に redis を共有メモリに読み取るメソッド

WBOY
リリース: 2016-07-28 08:27:38
オリジナル
2231 人が閲覧しました

前提:

openresty または ngx_lua に関する参考文献:http://openresty.org/en/

问题:

openresty 内のデータを使用する場合、init_by_lua_file では redis に接続できません。以有時候Redis データは再書き込みフェーズまたはアクセスフェーズでのみ読み取ることができます。初期化フェーズでデータを読み取るにはどうすればよいですか?

解決策:

init ステージでシェルコマンドを呼び出す方法を使用します。これは、init ステージでシェルコマンドを実行し、Redis データを読み取り、読み取ったテキストデータを解析するのと同じです。つまり、次のように読み取ることができます。 Redis データを nginx での例:

1 Redis にはハッシュがあり、保存されたデータは次のとおりです:

hmset test_hash f1 v1 f2 v2 f3 v3

2 init_by_lua_file で読み取られたコードは次のとおりです:

local cmd = " redis-cli hgetall test_hash"

local f = io.popen(cmd

) local content = f:read("*a")

f:close()

上記コンテンツ内のメモリはRedis内のデータ。

ここでの内容は文字列であり、自分で辞書に再解析する必要があることに注意してください。変数または共有メモリに保存できます。

上記は、init_by_lua_file 段階で openresty が redis を共有メモリに読み込む方法を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人の参考になれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート