Redis笔记3---数据库

redis服务器将所有数据库都保存在服务器 RedisServer 结构的数组中, db 数组中的每一项都是一个 redisDb结构

struct
redisServer { // 数组, 保存着服务器中的所有数据库 redisDb *db ; // 服务器的数据库数量 int dbnum }

redisDb结构

struct redisDb{
//数据库键空间,保存着数据库的所有键值对
dict *dict ;
//过期键空间,保存着数据库的所有具有过期时间的键值对
dict *expires;
}

当对键设置超时时间后,其将转移到过期键空间中。过期时间的命令如下:
  • expire
  • pexpire
  • expireat
  • pexpireat

redis对键进行读写完毕后,还会进行后续的维护操作。内容如下:

  1. 更新键空间的命中次数、不命中次数
  2. 读取键后,维护键的最后访问时间
  3. 若是键已经过期,则先删除此键。再完善后续的操作
  4. 键被修改后,脏计数器便会加1
  5. 如果客户端监视了此键,那么服务器在修改完毕此键后,便会将此键标记为脏
原文地址:https://www.cnblogs.com/sunxianbiao/p/12782724.html