0x1
redis的内存分配器默认是jemalloc。需要查看的话,在启动redis显示日志是没有提示的,但是启动后登录redis的cmd,然后使用以下命令可以确认:
命令一: INFO
# INFO 命令的内容有很多,但是可以关注Memory这部分,显示的提示了当前的内存分配器版本
127.0.0.1:7001> INFO
...
mem_cluster_links:0
mem_aof_buffer:8
mem_allocator:jemalloc-5.2.1
active_defrag_running:0
lazyfree_pending_objects:0
lazyfreed_objects:0
...
命令二: MEMORY MALLOC-STATS
# 此命令也会显示提示内存分配器版本
127.0.0.1:7001> MEMORY MALLOC-STATS
___ Begin jemalloc statistics ___
Version: "5.2.1-0-g0"
...
--- End jemalloc statistics ---
方式三:查询打开文件
# 能够显示使用的jemalloc分配器
lsof | grep redis
0x2
为什么要使用jemalloc呢,应该是性能更高吧,目前默认malloc在jvm上有可能导致内存不释放的问题