美文网首页
Redis--数据库

Redis--数据库

作者: 简书徐小耳 | 来源:发表于2019-04-13 16:51 被阅读0次

数据库的结构

  • 1.底层采用dict结构--我们称之为键空间,键空间的键就是我们的key,值则是我们的value。

数据库的拾遗

  • 1.在redisServer中包含一个数组,数组元素就是数据库,redisServer就是redis的服务状态对象。
  • 2.在redisServer中标识了启动redis创建多少个数据库
  • 3.在redisClient中包含当前client目前正在使用的db。redisClient,是redis服务端给每个客户端保存的一个对象。

键空间拾遗

  • 1.读取键之后(读写都会需要读取键),会根据键是否存在 来更新服务器的键空间命中次数和不命中次数。
  • 2.读取键的时候,会更新键的LRU。
  • 3.如果读取一个键时发现该键已经过期,那么服务器会先删除该过期键。
  • 4.如果使用watch命令监视某个键,那么服务器对键进行修改后,该键会被标记为脏,脏键计数器值会随着修改增加,进而触发服务器的持久化以及复制操作。

设置过期时间的原理

  • 1.可以直接设置多少秒(毫秒)之后过期,也可以直接设置时间戳。
  • 2.上述最终都是会给对应的键设置一个毫秒数的时间戳,然后等时间超过该时间戳则该键过期。
  • 3.设置过期键就是在过期字典中设置一个key和value。

保存过期时间

  • 1.数据库中采用一个额外的字典,该字典里面包含所有键的过期时间。
  • 2.过期字典的键是一个指针,指向监控机的某个键对象,过期字典的值是一个时间戳。

过期键的判断

  • 1.先去过期字典查找,找到了之后再去对比时间戳。

过期键的删除策略

  • 1.定时:一个键对应一个定时器
  • 2.惰性:放任键过期不管,真正使用的时候去过期字典检测是否已经过期。过期则删除
  • 3.定期:每隔一段时间检测db中的过期字典。定期的任务放在redis的serverCron函数执行。
  • 4.redis采用的是定期和惰性的结合。

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

  • RDB:生成RDB时候已经过期的键不会保存到RDB文件,主服务器载入RDB时候会删除过期键,而从服务则不会(当然后期同步从库还会清空)。
  • AOF文件写入:写入文件不会删除过期键,但是当键被删除,会给AOF文件追加删除指令。
  • AOF文件重写:会删除过期键。
  • 复制:从服务器的删除操作只能有主服务器发送指令才可以,从服务器不会主动删除键。

相关文章

  • redis--数据库

    数据库对象定义如下: redisDb定义如下: 过期键删除 惰性删除redis过期键惰性删除策略定义在db.c/e...

  • Redis--数据库

    数据库的结构 1.底层采用dict结构--我们称之为键空间,键空间的键就是我们的key,值则是我们的value。 ...

  • Redis--复制

    Redis--复制 复制功能的实现 1.通过SLAVEOF命令可以让从服务器同步主服务器的数据。 旧版复制实现的机...

  • Redis--使用RedisTemplate操作数据库

    一.什么是Redis Redis是一个非关系型数据库,具有很高的存取性能,一般用作缓存数据库,减少正常存储数据库的...

  • Redis--哈希

    哈希类型是指键值本身又是一个键值对结构 -----------------------------命令 ---设置...

  • Redis--命令

    设值 获值 设置过期时间(单位:s) 设置过期时间(单位:s) 设置过期时间(单位:ms) 设置UNIX过期时间戳...

  • Redis--集合

    集合(set)类型也是用来保存多个字符串元素的,但是和列表不一样的是,集合中不允许有重复元素,并且集合中元素是无序...

  • Redis--列表

    列表(list)类型是用来存储多个有序的字符串,一个列表最多可以储存2^32 - 1个元素,列表是比较灵活的数据结...

  • redis--使用

    一:redis中的数据类型 redis的数据存储:key=value 键值对 key<键>的数据类型:字符串 va...

  • redis--使用

    一:redis中的数据类型 redis的数据存储:key=value 键值对 key<键>的数据类型:字符串 va...

网友评论

      本文标题:Redis--数据库

      本文链接:https://www.haomeiwen.com/subject/julrwqtx.html