zoukankan      html  css  js  c++  java
  • memcached的LRU删除机制

    1)memcached不会自动清空缓存的值
    如果add了一个值,但不去get它,那么这个值过期了,它也不会被清空。
    解释:memcached不自动检测和清空值,它只当你需要get这个值的时候,才检测这个值是否过期,过期则清空此值,并返回空。

    PS:可使用stats命令查询 memcached的curr_items和total_items状态


    2)memcached不会自动删除缓存的值
    即使一个值过期了,memcached也不会删除它,只了清空了它的值,状态改为已过期。
    真正删除值:只有当memcached内存满了,有新值需要占用空间,才会的把过期的值删除,存入新的值。


    3)删除规则
    刚刚说不自动删除值,只有当存入新的值,才会删除过期的值,那么删除哪一个过期值呢??

    FIFO删除机制
    这是其他应用删除机制,队列的删除机制,first in first out,先进先出,删除最先来的那个值

    memcached的LRU删除机制
    memcached的删除机制是LRU删除机制,它并不是删除最新存的那个值,而是删除最少使用的那个值。

    PS1:当get key的时候,此key的新鲜度更新为最新鲜,并不是新鲜度+1
    PS2:这种LRU删除机制并不是只删除过期的值,如果memcached内存满了,即使最近的那个值还没过期,也会被踢除(永久数据被踢除现象)

  • 相关阅读:
    linux之iptable案例
    nginx常用命令参数
    laravel中的多对多关系详解
    MySql计算时间差函数
    总结下Mysql分表分库的策略及应用
    swoole扩展实现真正的数据库连接池
    linux常用命令整理
    innodb mvcc实现机制
    mysqlslap 压力测试使用总结
    mysql索引总结
  • 原文地址:https://www.cnblogs.com/tujia/p/5413028.html
Copyright © 2011-2022 走看看