首頁 >後端開發 >php教程 >一種openresty在init_by_lua_file階段讀取redis到共享記憶體的方法

一種openresty在init_by_lua_file階段讀取redis到共享記憶體的方法

WBOY
WBOY原創
2016-07-28 08:27:382239瀏覽

前提:

        關於openresty 或ngx_lua 請參考:http://openresty.org/en/

問題:

 🎜>

問題:

   時,在init_by_lua_file中是無法連接redis的,所以有時候只能在rewrite或access階段讀取redis數據,用什麼辦法在初始化階段讀取呢?

解決方法:

採用在init階段調用shell命令的方法,相當於在init階段,執行一個shell命令,讀取redis數據,把讀取的文本數據進行解析,即可實現讀取redis資料到nginx中

舉例:

        1 redis中存在一個hash,儲存資料為:

hmset 存在一個hash,儲存資料為:

hmset 存在一個hash,儲存資料為:

hmset 存在一個hash,儲存資料為:

hmset 存在一個hash f1 v1 f

        2 init_by_lua_file中讀取的程式碼為:

        local cmd = "redis-cli  hgetall test_hash> )

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

         f:close()

以上記憶體中的資料。即

需要注意,此處的content是字串,需要自己重新解析成字典,可以存入變量,也可以存在共享記憶體中。 以上就介紹了 一種openresty在init_by_lua_file階段讀取redis到共享記憶體的方法,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn