目前使用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中

狐的傳說
TA貢獻1804條經驗 獲得超3個贊
很長的key當然會改變redis構建的數據對象的底層實現方式,會影響redis查詢數據的速度,另外很長的key導致的底層結構的改變也會使存儲單元數據的空間變大的,如果存儲的數據很多,消耗大量的內存,也是很不利的,應該考慮將子分類單獨構建成一個數據對象,鍵可以設置成分類相關聯的,這樣刪除一個分類的時候,順便把對應子分類的名字也給刪除了,有一本書是redis的設計與實現,可以看一下
- 2 回答
- 0 關注
- 1965 瀏覽
添加回答
舉報
0/150
提交
取消