亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

mongodb和redis結合,用id做為redis的key,key過長的問題

mongodb和redis結合,用id做為redis的key,key過長的問題

慕娘9325324 2018-07-26 20:20:09
目前使用mongodb和redis結合。redis的key,使用mongodb自動生成的id,比如這個ObjectId("5942221b18506251977e0d97")一個是24字節。現在有些場景是必須兩個id構成一個redis的key。加起來。兩個就是48個字節。再加上一些命名空間。一個key就是55字節左右。比如list:5942221b18506251977e0d97:593ae709dd809044f7284459這么長,對性能影響多大?有沒有必要優化?之所以使用兩個key,是方便刪除的問題。比如 一個文章分類刪除了,我可以把所有分類下面的key都清除掉。比如DEL list:5942221b18506251977e0d97:*否則你不清除,這些key會一直遺留,占空間?;蛟S我可以設置過期時間,讓redis自己刪除過期的key
查看完整描述

2 回答

?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

性能上倒是沒什么影響 但是會占用存儲空間 如果說這個數據量很大 要存儲上百萬的key 光key就需要耗費很多內存,你可以設定規則 比如 key = md5(namespace+id1+id2) md5加密長度是定長32位 我目前在做點贊微服務就是這種方式 制定規則生成一個unionKey,將點贊總數緩存在redis中

查看完整回答
反對 回復 2018-07-30
?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

很長的key當然會改變redis構建的數據對象的底層實現方式,會影響redis查詢數據的速度,另外很長的key導致的底層結構的改變也會使存儲單元數據的空間變大的,如果存儲的數據很多,消耗大量的內存,也是很不利的,應該考慮將子分類單獨構建成一個數據對象,鍵可以設置成分類相關聯的,這樣刪除一個分類的時候,順便把對應子分類的名字也給刪除了,有一本書是redis的設計與實現,可以看一下

查看完整回答
反對 回復 2018-07-30
  • 2 回答
  • 0 關注
  • 1965 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號