Redis内存分配简单分析
2016-05-03 09:44
633 查看
Redis内存管理 1.Redis内存申请内存方式有三种: (1)系统自带的malloc/free方式进行申请/释放。 (2)使用tcmalloc进行内存的申请/释放。 (3)使用jemalloc进行内存申请/释放。 /* Explicitly override malloc/free etc when using tcmalloc. */ #if defined(USE_TCMALLOC) #define malloc(size) tc_malloc(size) #define calloc(count,size) tc_calloc(count,size) #define realloc(ptr,size) tc_realloc(ptr,size) #define free(ptr) tc_free(ptr) #elif defined(USE_JEMALLOC) #define malloc(size) je_malloc(size) #define calloc(count,size) je_calloc(count,size) #define realloc(ptr,size) je_realloc(ptr,size) #define free(ptr) je_free(ptr) #endif 2.内存计数器上使用了gcc的一组原子操作,实现的功能就是在used_memory+n的操作 //1.先做操作,再返回变化后的值 //2.先返回变化前的值,再做操作 #if defined(__ATOMIC_RELAXED) #define update_zmalloc_stat_add(__n) __atomic_add_fetch(&used_memory, (__n), __ATOMIC_RELAXED) //used_memory+=n; #define update_zmalloc_stat_sub(__n) __atomic_sub_fetch(&used_memory, (__n), __ATOMIC_RELAXED) //used_memory-=n; #elif defined(HAVE_ATOMIC) #define update_zmalloc_stat_add(__n) __sync_add_and_fetch(&used_memory, (__n)) //used_memory+=n; #define update_zmalloc_stat_sub(__n) __sync_sub_and_fetch(&used_memory, (__n)) //used_memory-=n; #else 3.还有一部函数获取系统的配置信息
相关文章推荐
- redis分布式锁简单实现
- 初识redis及实现session共享
- redis(一)在互联网开发中的使用之简单介绍
- redis(二)redis实战 使用redis进行文章的排序
- redis事务详解
- java对redis的操作
- java对redis的基本操作
- Redis+Spring缓存实例(windows环境,附实例源码及详解)
- 1.5linux安装redis
- JAVA - Redis的连接
- java操作redis
- redis-集合
- springmvc mybatis redis mysql maven搭建基本开发框架 (三)
- redis安装
- redis安装
- redis 一二事 - 设置过期时间,以文件夹形式展示key显示缓存数据
- redis主从复制深入解析
- Redis命令-集合-sinterstore
- redis-list(列表)
- redis-散列