美文网首页redis
2.1 redis过期设置原理

2.1 redis过期设置原理

作者: 9cc222f2bb0a | 来源:发表于2018-07-27 21:17 被阅读6次

    1. 所有的过期指令最终都变成了PEXPIREAT指令

    2. redis保存一份过期字典,键是一个指针,指向某个键对象,值是过期时间,一个毫秒精度的时间戳。过期字典与键空间中的键指向的是一个地址,不存在空间浪费。

    过期键删除策略:

    1. 定时删除。每次创建一个过期时间的同时,创建一个定时器。这种方式内存最友好,但是CPU最不友好。

    2. 惰性删除。每次使用时检查是否删除。内存最不友好,CPU最友好。可能会存在大量无用键。

    3. 定期删除。

    redis采用的是惰性删除跟定期删除。

    RDB操作:

        生成RDB文件时检查键,已过期的不存储。

        载入RDB文件时,按照以下策略进行处理:

            1. 如果是主服务器,会对键进行检查,已过期的忽略。

            2. 如果是从服务器,都会载入,但是主服务器在数据同步时,会将数据库进行清空,所以即便全部载入,也不会有什么影响。

    AOF操作:

        写入:如果某个键已经过期,但是并没有被惰性或定期删除,那么AOF文件不会处理,当被删除之后,程序会在AOF文件中追加一条DEL指令。

        重写:与RDB类似。

    复制:

        复制模式下,过期键的处理完全由主服务器控制。

    重点回顾:

    相关文章

      网友评论

        本文标题:2.1 redis过期设置原理

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