第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Redis如何回收過期數(shù)據(jù)?

Redis如何回收過期數(shù)據(jù)?

一只斗牛犬 2018-07-26 17:18:12
服務(wù)器經(jīng)常會用到redis作為緩存,有很多數(shù)據(jù)都是臨時set以下,可能用過之后很久都不會再用到了(比如暫存session)那么就有幾個問題了redis會自己回收清理不用的數(shù)據(jù)嗎?如果能,如何配置?如果不能,如何防止數(shù)據(jù)累加后大量占用存儲空間的問題?
查看完整描述

2 回答

?
慕神8447489

TA貢獻(xiàn)1780條經(jīng)驗 獲得超1個贊

可以用 expire 命令來設(shè)置過期時間。還有另外幾個命令也可以用來設(shè)置過期時間的,具體請查閱文檔。

查看完整回答
反對 回復(fù) 2018-07-30
?
浮云間

TA貢獻(xiàn)1829條經(jīng)驗 獲得超4個贊

redis默認(rèn)把所有數(shù)據(jù)都永久存儲在內(nèi)存中,當(dāng)你需要持久化數(shù)據(jù)(保存到磁盤)或者自動刪除過期鍵,需要使用額外的命令或者配置來完成; 如果你需要使用redis來完成你的業(yè)務(wù)需求(譬如cache),那么你就必須遵循redis的設(shè)計規(guī)則;

至于你后面提到這個問題:即便我很有潔癖的每一條都加上了expire,你能保證多人開發(fā)中其他人也加上了expire?如果有人沒有呢,那這個數(shù)據(jù)就一直一直一直保存著

我是這樣想的:通常業(yè)務(wù)邏輯都會封裝成API接口,譬如登陸場景存session接口可能就是:void addLoginSession(string data, int timeout),然后別人在調(diào)用的時候其實壓根不管這里面用的是redis還是memcache,所有的細(xì)節(jié)都必須只由API設(shè)計者消化;

順便說一下,redis如何清理數(shù)據(jù)庫中過期的鍵?它分為兩種:

  1. 惰性刪除:當(dāng)你去操作一個鍵(譬如 get name),redis首先會檢查這個鍵是否關(guān)聯(lián)了一個超時時間,如果有,則檢查是否超時,若超時則返回空,否則返回相應(yīng)的值;

  2. 定時刪除:redis中有個時間事件,它會清理數(shù)據(jù)庫中已經(jīng)過期的鍵(redis會限定該操作占用的時間,避免阻塞客戶端的請求)


查看完整回答
反對 回復(fù) 2018-07-30
  • 2 回答
  • 0 關(guān)注
  • 1922 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號