久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

博客專欄

EEPW首頁 > 博客 > openresty共享內存的使用

openresty共享內存的使用

發布人:天翼云開發者 時間:2025-12-11 來源:工程師 發布文章

本文分享自天翼云開發者社區《openresty共享內存的使用》.作者:王****蘭

在 OpenResty 中,ngx.shared 用于訪問共享內存區域,這在處理高并發請求時非常有用。以下是一些常見的使用場景和示例代碼。

首先,需要在 Nginx 配置文件中定義一個共享內存區域。例如,在 http 塊中添加以下配置:

lua_shared_dict my_shared_dict 10m;

然后可以在lua腳本中使用:

local shared_dict = ngx.shared.my_shared_dict

-- 設置鍵值對local key = "example_key"local value = "example_value"local success, err = shared_dict:set(key, value)if not success then
    ngx.log(ngx.ERR, "Failed to set key: ", err)end

-- 獲取鍵值對
value = shared_dict:get(key)-- 刪除鍵值對
success, err = shared_dict:delete(key)if not success then
    ngx.log(ngx.ERR, "Failed to delete key: ", err)end

-- 設置鍵值對并指定超時時間
key = "example_key"value = "example_value"local ttl = 60  -- 超時時間,單位為秒local success, err = shared_dict:set(key, value, ttl)if not success then
    ngx.log(ngx.ERR, "Failed to set key: ", err)end

-- 原子增加一個鍵的值
key = "counter"local increment = 1local new_value
new_value, err = shared_dict:incr(key, increment)if not new_value then
    ngx.log(ngx.ERR, "Failed to increment counter: ", err)end

-- 獲取共享內存區域中的所有鍵local keys = shared_dict:get_keys()for _, key in ipairs(keys) do
    ngx.say("Key: ", key)end

-- 清空共享內存區域中的所有鍵值對
success, err = shared_dict:flush_all()if not success then
    ngx.log(ngx.ERR, "Failed to flush all: ", err)end


*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。


關鍵詞: CDN

技術專區

關閉