rdb

用途

数据快照,可以定期保存

使用

save:不fork,阻塞服务器,期间不处理client请求,不推荐
bgsave:子进程save,请求正常

相关命令

save, bgsave, bgrewriteaof,不能同时执行

自动执行

save duration updates
save 900 10000
在900s以内有10000次更新就执行bgsave

typedef struct saveparan {
time_t seconds;
int changes;
}

状态保存

typedef struct redisServer {
long long dirty;//上次bgsave以后有多少次update
time_t lastSave;//bgsave 成功时间
}

状态是保存在redis server的,各个db共享

serverCron

redis内部的定时任务,大概100ms就会执行一次,注意是与client请求互斥的,redis保持对db的修改单线程

RDB文件结构

REDIS|db_version|databases|EOF|check_sum
REDIS: redis 标识
db_version:是指rdb的版本,不是redis服务器的版本

database

SELECTDB|db_num|kv_pairs
SELECTDB 开始的标志符
kv是自解释的,跟pb很相像啊

kv_pairs

type| kay | value
有过期的情况
EXPIRETIME_MS|ms|type|key|value

工具

redis-check-dump
redis-check-aof

引申

嵌套的kv很有用啊,pb就是这个思路的,比如我们要设计一个tree的序列化和反序列化,就可以用tlv
t: NODE,LEFT,RIGHT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值