新聞中心
超時

創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設(shè)計、網(wǎng)站制作與策劃設(shè)計,精河網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:精河等地區(qū)。精河做網(wǎng)站價格咨詢:13518219792
Redis是一個開源的高性能基于內(nèi)存的NoSQL數(shù)據(jù)庫,它可以用作緩存,消息中間件,數(shù)據(jù)庫等技術(shù)。使用Redis進行緩存的過程中,為了防止緩存的內(nèi)存過度使用,有時候會設(shè)置一個空值超時時間,即我們稱之為“過期”。這時候,如何設(shè)置Redis的空值超時時間變得尤為重要。
一、 設(shè)置Redis的空值超時
1. 使用expire命令
利用expire命令可以為KEY設(shè)置過期時間(以秒為單位),具體使用方法為:
expire key 10
這樣就可以把key的超時時間設(shè)置為10秒。
2. 使用pexpire命令
如果要設(shè)置的超時時間大于等于一天,或者設(shè)置的是毫秒,則可以利用pexpire命令來設(shè)置,具體語句為:
pexpire key 10000
這樣就可以設(shè)置key的超時時間為10000毫秒。
二、 設(shè)置過期后回調(diào)函數(shù)
Redis并不支持在key過期后執(zhí)行回調(diào)函數(shù),但是可以利用Lua腳本來實現(xiàn)這種設(shè)置。 只需要定義一個帶有超時參數(shù)的lua腳本,在需要設(shè)置的key過期之后,自動執(zhí)行設(shè)置的回調(diào)函數(shù),具體代碼如下:
// 定義:f超時后執(zhí)行的回調(diào)函數(shù),本處以打印key + hello!為例
f = function(key)
return key..” + hello!”
end
// 定義:Lua腳本,當設(shè)定的key + 超時時間 過期的時候,會調(diào)用前邊定義好的回調(diào)函數(shù)
local script = [[
— 鍵
local key = KEYS[1];
— 當前時間
local now = tonumber(ARGV[1]);
— 超時時間
local expired = tonumber(ARGV[2]);
— 回調(diào)函數(shù)的句柄
local call_back = ARGV[3];
— 調(diào)用回調(diào)函數(shù) 并返回
return call(call_back, key);
]]
// 調(diào)用Lua腳本,參數(shù)一:要設(shè)置的keyName;參數(shù)二:當前時間;參數(shù)三:超時時長;參數(shù)四:回調(diào)函數(shù)名
redis.call(“eval”,script,1,’key1′,now,expired ,’f’)
總結(jié):
通過以上方法,我們就可以設(shè)置Redis的空值超時,從而有效地避免了緩存的內(nèi)存過度使用的問題,有效的保證緩存的性能和效率。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
分享文章:如何設(shè)置Redis的空值(怎么設(shè)置redis空值)
路徑分享:http://www.5511xx.com/article/dhgicdp.html


咨詢
建站咨詢
