新聞中心
Redis是目前比較流行的緩存數(shù)據(jù)庫之一,最初是由Salvatore Sanfilippo開發(fā)的一個鍵值對存儲數(shù)據(jù)庫。它具有高并發(fā)讀寫、高可用性、持久化存儲、多種數(shù)據(jù)結構支持等特點,廣泛應用于網(wǎng)站、移動應用、物聯(lián)網(wǎng)等領域。

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設,株洲企業(yè)網(wǎng)站建設,株洲品牌網(wǎng)站建設,網(wǎng)站定制,株洲網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,株洲網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
Redis默認的內存分配策略主要有jeMALLOC和libc malloc兩種。在編譯Redis時可以通過選項–with-malloc選則使用哪種內存分配庫。下面我們來對比一下這兩種內存分配庫的優(yōu)缺點。
1. jemalloc
jemalloc是freebsd版本中默認的內存分配庫,也是Redis默認使用的內存分配庫。它具有以下優(yōu)點:
(1)提供了多線程環(huán)境下的內存分配優(yōu)化,可以避免內存碎片;
(2)擁有專門的內存分配器線程,可以為線程池、定時器線程等提供內存;
(3)提供內存分配計數(shù)和內存泄漏檢測等工具。
缺點是:
(1)相對于libc malloc來說占用的內存更多,因為jemalloc預留了很多內存用于高并發(fā)場景下的內存分配。
(2)與其他分配庫兼容性不高。
(3)不適用所有的應用場景。
jemalloc的使用可以提升Redis的性能,減少運行時內存碎片問題。當然,在不適用jvm、php等環(huán)境時可以選擇libc malloc。
2. libc malloc
libc malloc是Linux系統(tǒng)默認的內存分配庫,它的優(yōu)點是:
(1)與其他開源模塊兼容性較好;
(2)適用范圍比較廣泛,可用于很多應用場景。
它的缺點是:
(1)原生的libc malloc在多線程下存在性能問題,需要使用一些多線程改進版本的malloc庫;
(2)無法處理高并發(fā)場景中的內存分配問題。
在使用libc malloc時,需要考慮鎖競爭的問題,可以選擇Tlsf好Tcmalloc等多線程優(yōu)化版本。
Redis默認使用的是jemalloc,若要切換成libc malloc,只需要在編譯時加上–with-malloc選項即可。
$ make MALLOC=libc
當然,Redis在默認的情況下就已經(jīng)默認使用了jemalloc,所以并不需要進行改動。
本篇文章介紹了Redis中默認的內存分配策略jemalloc和libc malloc的優(yōu)缺點和適用范圍。在實際生產(chǎn)中,開發(fā)者可以根據(jù)自己的業(yè)務需求和服務器環(huán)境選擇合適的內存分配策略。
成都網(wǎng)站設計制作選創(chuàng)新互聯(lián),專業(yè)網(wǎng)站建設公司。
成都創(chuàng)新互聯(lián)10余年專注成都高端網(wǎng)站建設定制開發(fā)服務,為客戶提供專業(yè)的成都網(wǎng)站制作,成都網(wǎng)頁設計,成都網(wǎng)站設計服務;成都創(chuàng)新互聯(lián)服務內容包含成都網(wǎng)站建設,小程序開發(fā),營銷網(wǎng)站建設,網(wǎng)站改版,服務器托管租用等互聯(lián)網(wǎng)服務。
標題名稱:Redis默認內存分配策略探究(redis的默認內存大?。?
網(wǎng)址分享:http://fisionsoft.com.cn/article/dpippsp.html


咨詢
建站咨詢
