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');
    
  • 相关阅读:
    k8s使用
    7月3日课堂笔记
    7月6日课堂笔记
    画倒三角形
    6月29日课堂笔记
    understand试用笔记一阅读VS2010项目
    Spring Boot 入门(九)使用RabbitMQ
    Spring Boot 入门(十一)使用Schedule
    Spring Boot 入门(十三)使用Elasticsearch
    学习MySQL
  • 原文地址:https://www.cnblogs.com/jkko123/p/6294667.html
Copyright © 2011-2022 走看看