• memcache缓存失效


    缓存过期
    memcached在处理过期的缓存项时,采用懒惰模式处理方法。
    缓存项过期,不会立即删除,直到对该缓存项执行了get操作,才会删除过期缓存。
    
    > set key 0 10
    > test
    > stats //查看curr_items的值
    > get key //超过过期时间
    > stats //查看curr_items,发现执行get操作后,key被删除了。
    
    缓存空间已满
    memcached在插入新数据时,如果空间不足,采用的删除旧缓存项的策略。
    采用删除最近最少使用(使用频率低)的缓存项(LRU算法)。
    
    $mem = new Memcache();
    $mem->connect('127.0.0.1', '11211');
    $data = str_repeat('a', 500 * 1024);
    var_dump($mem->set('key_1', $data));
    
    $data2 = str_repeat('b', 500 * 1024);
    var_dump($mem->set('key_2', $data2));
    
    //分别获取不同次数的key
    $mem->get('key_1');
    $mem->get('key_2');
    $mem->get('key_1');
    
    //添加key_3,因空间不足,memcached会删除最少使用的key
    $data3 = str_repeat('c', 500 * 1024);
    var_dump($mem->set('key_3', $data3));
    
    $mem->get('key_3');
    //发现key_2已经被删除,因为使用较少
    $mem->get('key_2');
    $mem->get('key_1');
    
  • 相关阅读:
    mongodb数组操作
    tmux使用心得
    redis设置key总结
    gitbook构建文档命令
    js中for in,of区别
    redis清除缓存和连接远程服务器
    Postman使用记录
    asp.net中导出Execl的方法
    CASE WHEN 用法
    js 字符串转换数字
  • 原文地址:https://www.cnblogs.com/jkko123/p/6294667.html
Copyright © 2020-2023  润新知