在抠redis时,对于vm的设计有一个初步的想法,把冷数据重新malloc到一系列的内存块中,系统swap的交换以4k为单位,在redis里,一般4k能容纳多个key或value,如果冷热数据在同一4k的块里,阻碍冷数据swap out.redis期望通过一种vm的机制,把冷数据swap out到文件里,需要时再从文件swap in。但是该机制的效果不理想,带来复杂度的同时也使系统运行不稳定。该机制已经不推荐使用,并可能在2.6废弃。
对于把冷数据remalloc到连续的内存块,抽象出来需要一个支持以下功能的模块:
1.管理一系列的内存块,块和块之间不必连续。但对外是透明的。
2.模块提供malloc,free memory的操作,对memory的利用是高效和最大化的。
其实,该模块就是一个内存池。初步想了下,可以通过改造下dlmalloc(doug lee 大神的作品)来实现该功能。的
1.trim_check 初始化为MAX,dlfree就不会把释放的内存释放回给系统,会被dlmalloc缓存。
2.修改下sys_alloc的实现,缓存的内存不够时,调用sys_alloc时,分配一个内存块,内存块多余的被缓存起来。
(这里也可以在初始化时修改为指向一个大的文件,通过mmap映射过来,然后再free,后继的分配都是在这个文件上分配了)
通过该功能,在读数据时就可以忽略数据是通过正常的malloc的还是被处理的。冷然数据的转换只是是简单的remalloc。
分享到:
相关推荐
完整详细的redis优化配置,目前已经在生产环境使用
Windows 上安装 Redis安装Windows 上安装 Redis安装Windows 上安装 Redis安装Windows 上安装 Redis安装Windows 上安装 Redis安装Windows 上安装 Redis安装Windows 上安装 Redis安装Windows 上安装 Redis安装Windows ...
redisredis redis redis redis
NULL 博文链接:https://chentian114.iteye.com/blog/2290170
Redis实战 Redis实战 Redis实战 Redis实战 Redis实战 Redis实战 Redis实战
Redis 思维导图 Redis Redis Redis
Redis是一种开源的内存数据结构存储系统,它支持多种数据结构,如字符串、哈希、列表、集合、有序集合等。Redis可以用作数据库、缓存和消息中间件。Redis在性能、可扩展性和灵活性方面表现出色,因此被广泛应用于Web...
redis6.2.6 redis.conf配置文件
Redis_vm-playpen:使用分析原始码,从vm-playpen标签的分支开始
redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-...
Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装...
Redis7.0.4.zip,解压缩到D盘根目录后,安装后启动为Windows服务 注意是windows 64位系统才可使用,不支持windows 32位系统使用 已经在Win10,Win11,Windows server 2012系统测试运行可用 使用步骤注意事项: ...
redis.conf Redis配置文件 下载 redis.conf 配置详解 Redis配置文件redis.conf 详解1.基本配置内存单位的表示# 1k => 1000 bytes# ...Redis 的详细介绍Redis 的下载地址
redis安装 1: 下载redis-5.0.4.tar.gz 2: 解压源码并进入目录 tar zxvf redis-5.0.4.tar.gz cd redis-5.0.4 3: 不用configure 4: 直接make (如果是32位机器 make 32bit) 查看linux机器是32位还是64位的方法:...
基于前后端分离的应用,无论是否使用Redis,都需要考虑如何进行数据的存储和缓存。下面我将分别介绍基于Redis和无Redis的两种版本的特点。 基于Redis的版本 特点 缓存处理:Redis作为内存数据库可以用来缓存频繁访问...
redis redisDesktop ---------安装redis及使用redisDesktop查看数据
redis缓存 redis缓存
使用时打开redis 文件夹 双击 start.bat文件 启动redis ,不要关闭窗口,关闭窗口redis同时关闭
labview调用redis的工具包,vi很齐全,各种命令均有
redis开发redis开发redis开发redis开发redis开发redis开发redis开发redis开发redis开发redis开发