摘要: RDB文件结构 在Redis实现之RDB持久化(一)这一章中,我们介绍了Redis服务器保存和载入RDB文件的方法,在这一节,我们将对RDB文件本身进行介绍,并详细说明文件各个部分的结构和意义。图1-10展示了一个完整的RDB文件所包含的各个部分 图1-10 RDB文件结构 为了方便区分变量、数据、 阅读全文
posted @ 2018-10-03 21:56 北洛 阅读(368) 评论(0) 推荐(0) 编辑
摘要: RDB持久化 Redis是一个键值对数据库服务器,服务器中通常包含着任意个非空数据库,而每个非空数据库中又可以包含任意个键值对,为了方便起见,我们将服务器中的非空数据库以及它们的键值对统称为数据库状态。举个栗子,图1-1展示了一个包含三个非空数据库的Redis服务器,这三个数据库以及数据库中的键值对 阅读全文
posted @ 2018-10-03 18:29 北洛 阅读(845) 评论(0) 推荐(0) 编辑
摘要: 过期键删除策略 在Redis实现之数据库(二)一小节中,我们知道了数据库键的过期时间都保存在过期字典中,又知道了如果根据过期时间去判断一个键是否过期,现在剩下的问题是:如果一个键过期了,那么它什么时候会被删除呢?这个问题有三种可能的答案,它们分别代表了三种不同的删除策略: 定时删除:在设置键的过期时 阅读全文
posted @ 2018-10-03 14:06 北洛 阅读(649) 评论(0) 推荐(0) 编辑
摘要: 设置键的生存时间或过期时间 通过EXPIRE或PEXPIRE命令,客户端可以以秒或者毫秒精度为数据库中的某个键设置生存时间(Time To Live,TTL),在经过指定的秒数或者毫秒数之后,服务器就会自动删除生存时间为0的键: 与EXPIRE命令和PEXPIRE命令类似,客户端可以通过EXPIRE 阅读全文
posted @ 2018-10-03 12:09 北洛 阅读(587) 评论(0) 推荐(0) 编辑
摘要: 服务器中的数据库 Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构体的db数组中,db数组的每个项都是一个redis.h/redisDb结构体,每个redisDb结构体代表一个数据库 redis.h 在初始化服务器时,程序会根据服务器状态的dbnum属性来决定 阅读全文
posted @ 2018-10-03 07:56 北洛 阅读(6400) 评论(0) 推荐(0) 编辑