Redis筆記八之記憶體設定及最佳化_redis

來源:互聯網
上載者:User

        理論上講redis可以儲存2的32次方個key,每個執行個體至少存2億5千萬個key,但因為Redis是基於記憶體的資料庫所以也就意味著它不可能儲存特別多的資料,應該說redis的儲存極限是系統的可用記憶體。

我在本機上通過jedis產生100萬個key實際佔用記憶體108M

# Memory

used_memory:104730792

used_memory_human:99.88M

used_memory_rss:123080704

used_memory_peak:113668232

used_memory_peak_human:108.40M

used_memory_lua:35840

mem_fragmentation_ratio:1.18

mem_allocator:jemalloc-3.6.0

 

# Keyspace

db0:keys=1000000,expires=0,avg_ttl=0


記憶體設定

maxmemory和maxmemory_policy參數

      在redis.conf中通過這兩個參數配置redis的記憶體使用量情況。Redis的可用記憶體與系統的記憶體有關,一般我們需要設定它的最大可用記憶體,除非你確定你的業務中redis的記憶體不會很大且有足夠的系統記憶體。

maxmemory參數

不設定

    1:不設定或為0,64位系統不限制使用,32位最多使用3G

     2:如果不設定最大記憶體系統有多少記憶體redis就會用多少一旦開始寫入swap虛擬記憶體則後期查詢速度反而會慢。

設定

     如果開啟了RDB持久化方式,因為子進程在複製所有資料時記憶體使用量量會增加一倍,所以最大設定為系統記憶體的45%。如果沒有開啟最大設定為系統記憶體的95%。

     maxmemory_policy參數

    1:設定最大記憶體後需要設定刪除策略否則當記憶體不足時再添加資料就會報錯。

     2:有六種刪除策略。

     volatile-lru:使用LRU演算法從已設定到期時間的資料集合中淘汰資料。

     volatile-ttl:從已設定到期時間的資料集合中挑選即將到期的資料淘汰。

     volatile-random:從已設定到期時間的資料集合中隨機挑選資料淘汰。

    allkeys-lru:使用LRU演算法從所有資料集合中淘汰資料,淘汰使用頻率最少的key。

    allkeys-random:從資料集合中任意選擇資料淘汰

    no-enviction:禁止淘汰資料。


最佳化原則:

1:key的名稱盡量使用簡單明了的關鍵字,比如stu代表學生不要太長。

2:如果只是使用redis充當緩衝就請關閉持久化功能。

3:redis為每種資料類型都提供了兩種內部編碼方式,產生時redis自己會自動根據資料類型調整使用那種編碼方式。

4:slowlog慢日誌查詢

      當我們發現redis命令執行慢時可以通過slowlog來找出這些命令。在redis.conf中有兩個參數slowlog-log-slower-than10000和slowlog-max-len 128。

      slowlog-log-slower-than10000表示當命令執行時間大於10000時此命令會被儲存

      slowlog-max-len128表示redis會儲存最多128條命令。

      slowlog get可以查看當前所有執行慢的命令

      slowlog len可以查看目前一共記錄了多少條命令

      slowlog reset可以執行重設

      我們可以根據項目的實際情況修改redis.conf中的這兩個參數


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.