××redis××redisServer中dirty成员解读
2014-07-29 16:51
330 查看
struct redisServer { //... long long dirty; /* changes to DB from the last save */ long long dirty_before_bgsave; /* used to restore dirty on failed BGSAVE */ //... };
如注释所言,redisServer中的dirty用来存储上次保存前所有数据变动的长度。
dirty将在如下情况被累加:
update
flush
delete
rename command
move command
expire command
persist command
exec command
script command
sort command
set系列命令: hset hsetnx hmset hincrby hdel
list系列命令:push pushx lset pop
command
...
dirty将在如下情况被削减:
rdbsave后减去rdb所存储的数据的长度
dirty将在如下情况被重新设置为0:
在initServer中被初始化为零
执行debug command
执行rdb存储
diry在aof中的一个应用:
在call函数中:
void call(redisClient *c) { //... dirty = server->dirty; c->cmd->proc(c); dirty = server->dirty-dirty; //... if (server->appendonly && dirty > 0) { //... len = feedAppendOnlyFile(c->cmd,c->db->id,c->argv,c->argc); //... } }
会通过如上步骤来判断在执行命令的过程中是否有了db中数据的变化,用得到的结果来判断要不要执行aof操作。
相关文章推荐
- redis命令详解与使用场景举例——Server(服务器)
- redis启动出错Creating Server TCP listening socket 127.0.0.1:6379: bind: No error
- redis启动出错Creating Server TCP listening socket 127.0.0.1:6379: bind: No error--转载
- 解读Redis dict核心数据结构
- twemproxy - Proxy Server for Redis 安装测试
- 在ubuntu14系统中将redis-server设置为开机启动项
- 解读tomcat的server.xml文件
- 第36课:Kafka源码解读SocketServer下的Acceptor、Processor、Handler
- redis 配置文件解读
- 企业打开Redis的正确方式,来自阿里云云数据库团队的解读
- 企业打开Redis的正确方式,来自阿里云云数据库团队的解读
- .NET开源MSSQL、Redis监控产品Opserver之Exception配置
- 部署opserver监控redis
- 解决:widonws后台运行redis-server.exe问题
- Redis特性解读
- redis server与client通信协议介绍
- NOAUTH Authentication required redis(二) The server is ruuning without a config file
- redis源码解读(六):基础数据结构之quicklist
- [置顶] redis完全解读
- error C2248: “ATL::CServerContext::m_pECB”: 无法访问 protected 成员(在“ATL::CServerContext”类中声明)