redis(二)单机数据库

数据库

  • 数据库结构
  • 数据库键空间
  • 设置键的过期时间
  • 过期键删除策略
  • AOF和RDB复制功能对过期键的处理
    • RDB
    • AOF
    • 复制

数据库结构

redis(二)单机数据库_第1张图片
redis服务器会默认设置16个数据库,多机形式的话,会只使用每个redis服务的第一个数据库。

数据库键空间

redis(二)单机数据库_第2张图片
redisDb就是16个中的一个,然后他里面的dict指针指向数据的键。

设置键的过期时间

redis> SET key value
redis> EXPIRE key 5 // 5秒后过期
redis> EXPIREAT key 时间戳 // 到了时间戳设置的值,就过期

过期键删除策略

  1. 定时删除:设定定时器,如果键的过期时间到了就进行删除
  2. 惰性删除:但别的命令来get的时候,他会判断key是否已经过期,过期则删除,并返回null
  3. 定期删除:在某一时期遍历数据库中带有过期时间的key,进行判断,过期则删除。

AOF和RDB复制功能对过期键的处理

RDB

RDB在生产RDB文件的时候,会对过期键进行过滤。
RDB在载入的时候,同样会对过期键进行过滤。

AOF

AOF再追加的时候,如果键已经过期,则会再追加一条删除命令。
AOF在重写的时候,会对过期键进行过滤。

复制

如果有从服务器,对主服务器进行备份。同时进行读写分离的话。client读从服务器的过期键还是可以得到结果的。只有主服务器对key进行来删除,并且通知从服务器进行删除,才会使从服务器上对key失效。

你可能感兴趣的:(redis)