Redis默认内存分配策略探究(redis的默认内存大小)

Redis是目前比较流行的缓存数据库之一,最初是由Salvatore Sanfilippo开发的一个键值对存储数据库。它具有高并发读写、高可用性、持久化存储、多种数据结构支持等特点,广泛应用于网站、移动应用、物联网等领域。

成都创新互联公司是一家集网站建设,株洲企业网站建设,株洲品牌网站建设,网站定制,株洲网站建设报价,网络营销,网络优化,株洲网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

Redis默认的内存分配策略主要有jeMALLOC和libc malloc两种。在编译Redis时可以通过选项–with-malloc选则使用哪种内存分配库。下面我们来对比一下这两种内存分配库的优缺点。

1. jemalloc

jemalloc是freebsd版本中默认的内存分配库,也是Redis默认使用的内存分配库。它具有以下优点:

(1)提供了多线程环境下的内存分配优化,可以避免内存碎片;

(2)拥有专门的内存分配器线程,可以为线程池、定时器线程等提供内存;

(3)提供内存分配计数和内存泄漏检测等工具。

缺点是:

(1)相对于libc malloc来说占用的内存更多,因为jemalloc预留了很多内存用于高并发场景下的内存分配。

(2)与其他分配库兼容性不高。

(3)不适用所有的应用场景。

jemalloc的使用可以提升Redis的性能,减少运行时内存碎片问题。当然,在不适用jvm、php等环境时可以选择libc malloc。

2. libc malloc

libc malloc是Linux系统默认的内存分配库,它的优点是:

(1)与其他开源模块兼容性较好;

(2)适用范围比较广泛,可用于很多应用场景。

它的缺点是:

(1)原生的libc malloc在多线程下存在性能问题,需要使用一些多线程改进版本的malloc库;

(2)无法处理高并发场景中的内存分配问题。

在使用libc malloc时,需要考虑锁竞争的问题,可以选择Tlsf好Tcmalloc等多线程优化版本。

Redis默认使用的是jemalloc,若要切换成libc malloc,只需要在编译时加上–with-malloc选项即可。

$ make MALLOC=libc

当然,Redis在默认的情况下就已经默认使用了jemalloc,所以并不需要进行改动。

本篇文章介绍了Redis中默认的内存分配策略jemalloc和libc malloc的优缺点和适用范围。在实际生产中,开发者可以根据自己的业务需求和服务器环境选择合适的内存分配策略。

成都网站设计制作选创新互联,专业网站建设公司。
成都创新互联10余年专注成都高端网站建设定制开发服务,为客户提供专业的成都网站制作,成都网页设计,成都网站设计服务;成都创新互联服务内容包含成都网站建设,小程序开发,营销网站建设,网站改版,服务器托管租用等互联网服务。

分享题目:Redis默认内存分配策略探究(redis的默认内存大小)
文章出自:http://www.shufengxianlan.com/qtweb/news14/22664.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联