Redis 應該如何節約使用記憶體 有什麼好的設計策略和好的方法

時間 2021-05-29 23:40:57

1樓:dashu愛學習

分享一下關於大集合的記憶體節約的乙個思路,此內容只適用於整數值的集合。

比如set中,redis缺省會把512個以下的集合用intset儲存,能極大的減少記憶體使用量,這個個數可以在redis配置中更改。

如果要儲存超大整數集合,那麼不妨試試把它切割成多分,讓每個集合的個數低於512這個配置值以下。

具體配置名稱就不一一寫出來了,自己搜尋redis.conf檔案 ,intset

據說這一方法的CPU負載略高,具體落地還需要找乙個配置與業務的平衡。

2樓:iammutex

要節約記憶體,首先需要了解Redis的記憶體用到哪去了。比如最基礎的,key值不要太長,或者像instagram的案例中一樣,用hash結構將多個key合併成乙個key,以利用hash結構的小資料量壓縮功能。節約記憶體的方法真的很多,但都需要根據自己的應用場景來做決策。

instagram的案例可以看這裡:http://blog.nosqlfan.com/html/3379.html

3樓:yiihsia

盡量使用hset,hget

盡量避免使用set、list等資料結構

設定redis的最大記憶體不超過物理記憶體,提前做好容量規劃

4樓:查金星

利用一些簡單的可逆的演算法進行分庫儲存,例如按照使用者ID,在一定範圍的使用者ID儲存到指定的Redis庫中,這樣既能有效擴充套件,就不用擔心記憶體不夠用了。

當然如果涉及到不同庫中資料的不停交換,對效能的影響也需要考慮到

台式電腦2G記憶體和1G記憶體混插使用應該注意什麼?

以前 微型計算機 雜誌做過乙個測試,他們把能想到的可行的組合都試過。測試平台沒有改變 所以不能說明不同平台的相容性問題 主要測試物件是DDR3記憶體 不同容量,不同時序,不同品牌,不同製程。所以題主不用太擔心。還有一點,系統會預設按頻率的那個條子的頻率執行額。我錯了,才發現題主是要寫DDR2記憶體,...

使用redis做減庫存 下單,如何保證這兩步操作的要麼都成功要麼都失敗

ECHO 用redis還是不合適做事務。根據之前我們這裡壓測mysql單條記錄update的效能大概是500 s 如果效能不能滿足需求的話有兩種思路,1 是採用redis 但是庫存修改和下單分為兩個步驟,庫存扣除成功後在執行下單操作,如果下單失敗再對庫存進行沖正。同時增加對帳機制,對庫存和訂單進行核...

消防錘應該如何使用?

林進永 shxf.net 1 會取下逃生錘。一般逃生錘都可以直接向上提起然後摘下來,但有的公共汽車上為防止別人亂拿,用支架扣住了逃生錘,直接拿取不下來,這就要仔細觀察卡住逃生錘的支架,把支架鬆開才能取下逃生錘。2 掌握正確的手握逃生錘方法。對於普通的逃生錘,要把四指併攏握住把柄,大拇指在外貼緊中指。...