zoukankan      html  css  js  c++  java
  • 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');
    
  • 相关阅读:
    Flutter-路由
    写一个底部Tabs导航动态组件
    实例:Flutter布局01
    HTTP报文
    HTML文本的各种属性
    HTML必要简介和基础
    MySQL8.0.23安装超详细傻瓜式
    从一个HTTP请求来研究网络分层原理
    MySQL的增删改查
    MySQL常用数据类型有哪些?
  • 原文地址:https://www.cnblogs.com/jkko123/p/6294667.html
Copyright © 2011-2022 走看看