Redis数据库实现
目录 服务器中的数据库 切换数据库 数据库键空间 添加新键 删除键 更新键 对键取值 其他键空间操作 读写键空间时的维护操作 设置键的生存时间或过期时间 设置过期时间 保存过期时间 移除过期时间 计算并返回剩余生存时间 过期键的判定 过期键删除策略 定时删除 惰性删除 定期删除 Redis的过期键删除策略 惰性删除策略的实现 定期删除策略的实现 AOF、RDB和复制功能对过期键的处理 生成RDB文件 载入RDB文件 AOF文件写入 AOF重写 复制 数据库通知 发送通知 发送通知的实现 重点回顾 服务器中的数据库 Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db 数组中,db数组的每个项都是一个redis.h/redisDb结构,每个redisDb结构代表一 个数据库: 在初始化服务器时,程序会根据服务器状态的dbnum属性来决定应该创建多少个数据库: dbnum属性的值由服务器配置的database选项决定,默认情况下,该选项的值为 16, 所以Redis服务器默认会创建16个数据库, 如图 切换数据库 每个Redis客户端都有自己的目标数据库,每当客户端执行数据库写命令或者数据库读 命令的时候,目标数据库就会成为这些命令的操作对象。 默认情况下,Redis客户端的目标数据库为0号数据库,但客户端可以通过执行