校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 手動實現Redis的LRU緩存機制示例詳解

手動實現Redis的LRU緩存機制示例詳解

熱門標簽:超呼電話機器人 十堰營銷電銷機器人哪家便宜 北京400電話辦理收費標準 宿遷便宜外呼系統平臺 魔獸2青云地圖標注 日本中國地圖標注 鄭州人工智能電銷機器人系統 山東外呼銷售系統招商 貴州電銷卡外呼系統

前言

最近在逛博客的時候看到了有關Redis方面的面試題,其中提到了Redis在內存達到最大限制的時候會使用LRU等淘汰機制,然后找了這方面的一些資料與大家分享一下。 LRU總體大概是這樣的,最近使用的放在前面,最近沒用的放在后面,如果來了一個新的數,此時內存滿了,就需要把舊的數淘汰,那為了方便移動數據,肯定就得使用鏈表類似的數據結構,再加上要判斷這條數據是不是最新的或者最舊的那么應該也要使用hashmap等key-value形式的數據結構。

第一種實現(使用LinkedHashMap)

public class LRUCache {

  int capacity;
  MapInteger,Integer> map;

  public LRUCache(int capacity){
    this.capacity = capacity;
    map = new LinkedHashMap>();
  }

  public int get(int key){
    //如果沒有找到
    if (!map.containsKey(key)){
      return -1;
    }
    //找到了就刷新數據
    Integer value = map.remove(key);
    map.put(key,value);
    return value;
  }

  public void put(int key,int value){
    if (map.containsKey(key)){
      map.remove(key);
      map.put(key,value);
      return;
    }
    map.put(key,value);
    //超出capacity,刪除最久沒用的即第一個,或者可以復寫removeEldestEntry方法
    if (map.size() > capacity){
      map.remove(map.entrySet().iterator().next().getKey());
    }
  }

  public static void main(String[] args) {
    LRUCache lruCache = new LRUCache(10);
    for (int i = 0; i  10; i++) {
      lruCache.map.put(i,i);
      System.out.println(lruCache.map.size());
    }
    System.out.println(lruCache.map);
    lruCache.put(10,200);
    System.out.println(lruCache.map);
  }

第二種實現(雙鏈表+hashmap)

public class LRUCache {

  private int capacity;
  private MapInteger,ListNode>map;
  private ListNode head;
  private ListNode tail;

  public LRUCache2(int capacity){
    this.capacity = capacity;
    map = new HashMap>();
    head = new ListNode(-1,-1);
    tail = new ListNode(-1,-1);
    head.next = tail;
    tail.pre = head;
  }

  public int get(int key){
    if (!map.containsKey(key)){
      return -1;
    }
    ListNode node = map.get(key);
    node.pre.next = node.next;
    node.next.pre = node.pre;
    return node.val;
  }

  public void put(int key,int value){
    if (get(key)!=-1){
      map.get(key).val = value;
      return;
    }
    ListNode node = new ListNode(key,value);
    map.put(key,node);
    moveToTail(node);

    if (map.size() > capacity){
      map.remove(head.next.key);
      head.next = head.next.next;
      head.next.pre = head;
    }
  }

  //把節點移動到尾巴
  private void moveToTail(ListNode node) {
    node.pre = tail.pre;
    tail.pre = node;
    node.pre.next = node;
    node.next = tail;
  }

  //定義雙向鏈表節點
  private class ListNode{
    int key;
    int val;
    ListNode pre;
    ListNode next;

    //初始化雙向鏈表
    public ListNode(int key,int val){
      this.key = key;
      this.val = val;
      pre = null;
      next = null;
    }
  }
}

像第一種方式,如果復寫removeEldestEntry會更簡單,這里簡單的展示一下

public class LRUCache extends LinkedHashMapInteger,Integer> {
  private int capacity;
  
  @Override
  protected boolean removeEldestEntry(Map.EntryInteger, Integer> eldest) {
    return size() > capacity;
  }
}

到此這篇關于手動實現Redis的LRU緩存機制的文章就介紹到這了,更多相關Redis的LRU緩存機制內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Java手動實現Redis的LRU緩存機制
  • 淺談redis緩存在項目中的使用
  • 詳解redis緩存與數據庫一致性問題解決
  • 淺談MySQL與redis緩存的同步方案
  • 使用 Redis 緩存實現點贊和取消點贊的示例代碼
  • 詳解Redis 緩存刪除機制(源碼解析)
  • Redis 緩存實現存儲和讀取歷史搜索關鍵字的操作方法
  • SpringCache 分布式緩存的實現方法(規避redis解鎖的問題)
  • 詳解緩存穿透擊穿雪崩解決方案

標簽:臺州 江蘇 北京 朝陽 大慶 楊凌 吉安 果洛

巨人網絡通訊聲明:本文標題《手動實現Redis的LRU緩存機制示例詳解》,本文關鍵詞  手動,實現,Redis,的,LRU,緩存,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《手動實現Redis的LRU緩存機制示例詳解》相關的同類信息!
  • 本頁收集關于手動實現Redis的LRU緩存機制示例詳解的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    日韩一级片网站| 成人免费小视频| heyzo一本久久综合| 亚洲大片精品永久免费| 日本一区二区三区在线观看| 欧美日本视频在线| 91老师片黄在线观看| 国产成人午夜精品影院观看视频| 日韩一区精品视频| 亚洲人成网站色在线观看| 久久中文字幕电影| 欧美一区二区啪啪| 91福利社在线观看| av电影在线观看一区| 国产一区二区三区在线观看免费视频| 亚洲小少妇裸体bbw| 国产精品丝袜久久久久久app| 欧美本精品男人aⅴ天堂| 欧美精品日韩精品| 欧美性受xxxx黑人xyx性爽| 成人动漫一区二区在线| 国产成人在线免费| 韩国精品在线观看| 捆绑调教美女网站视频一区| 亚洲3atv精品一区二区三区| 夜夜精品视频一区二区| 《视频一区视频二区| 日本一区二区三区四区在线视频 | 亚洲精品第一国产综合野| 久久精品夜夜夜夜久久| xfplay精品久久| 精品久久99ma| 精品久久久久久久久久久院品网| 日韩一区二区三区在线| 91麻豆精品91久久久久同性| 欧美精品免费视频| 欧美精品乱人伦久久久久久| 91麻豆精品国产91久久久久久久久| 欧美亚洲日本一区| 欧美在线观看视频在线| 欧美日韩中文字幕一区二区| 欧美午夜精品理论片a级按摩| 欧洲在线/亚洲| 欧美色老头old∨ideo| 欧美午夜精品一区二区三区| 欧美视频一区二区三区四区| 欧美日韩国产另类不卡| 欧美精品一二三| 欧美一区二区三区视频在线| 精品奇米国产一区二区三区| 久久久久久99久久久精品网站| 久久精品视频免费| 成人欧美一区二区三区小说| 精品乱人伦一区二区三区| 成人动漫一区二区在线| 成人性生交大合| 99久久伊人精品| 麻豆成人久久精品二区三区红 | 不卡电影免费在线播放一区| 成人sese在线| 在线观看一区二区精品视频| 欧美一卡2卡3卡4卡| 精品99一区二区| 中文字幕中文字幕一区二区 | 亚洲欧美另类久久久精品| 一区二区三区美女视频| 日韩高清在线不卡| 国产精品一区二区久久精品爱涩 | 白白色 亚洲乱淫| 99国产欧美另类久久久精品| 成人av网址在线| 色婷婷综合久久| 日韩午夜三级在线| 国产精品美女久久福利网站| 亚洲一线二线三线视频| 精品无人码麻豆乱码1区2区| 成人免费黄色在线| 欧美日韩精品一二三区| 久久久久久一级片| 亚洲欧美另类综合偷拍| 免费高清在线视频一区·| 国产福利精品一区| 欧美日韩国产在线播放网站| 久久久久国产精品免费免费搜索| 一区二区欧美国产| 国产最新精品精品你懂的| 91首页免费视频| 精品国产乱码久久久久久闺蜜| 亚洲色图欧美偷拍| 国内精品久久久久影院薰衣草 | 欧美zozo另类异族| 椎名由奈av一区二区三区| 日韩高清不卡一区二区| caoporn国产精品| 日韩电影在线免费看| 成人涩涩免费视频| 欧美在线999| 精品国产乱码久久久久久闺蜜 | 欧美精品久久天天躁| 国产精品国产精品国产专区不片| 日本亚洲视频在线| 在线视频欧美精品| 国产欧美日韩不卡| 美国三级日本三级久久99| 91黄视频在线| 国产精品美女久久久久aⅴ | 亚洲欧美欧美一区二区三区| 国产综合久久久久久久久久久久| 欧洲国内综合视频| 国产精品嫩草99a| 国产原创一区二区| 日韩一级片在线观看| 亚洲自拍都市欧美小说| 99re热这里只有精品视频| 久久久青草青青国产亚洲免观| 日本sm残虐另类| 欧美日韩国产一二三| 亚洲欧洲无码一区二区三区| 国产一本一道久久香蕉| 欧美大黄免费观看| 美女mm1313爽爽久久久蜜臀| 欧美视频一区二区三区四区| 亚洲精品美腿丝袜| 成人免费高清在线| 国产清纯在线一区二区www| 激情国产一区二区 | 久久综合视频网| 欧美aaa在线| 日韩一区二区三区高清免费看看 | 亚洲综合色在线| 91麻豆国产自产在线观看| 国产精品区一区二区三| 国产成人精品免费视频网站| 欧美xxxxxxxxx| 极品瑜伽女神91| 久久综合视频网| 国产精品77777竹菊影视小说| 亚洲精品一区二区三区99| 国产一区二区三区四区五区入口 | 国产精品女主播在线观看| 国产精品亚洲视频| 国产欧美视频在线观看| 成人免费视频网站在线观看| 国产精品美日韩| 99久久er热在这里只有精品66| 国产精品二区一区二区aⅴ污介绍| caoporm超碰国产精品| 一区二区三区日韩欧美| 欧美日韩免费在线视频| 青青草97国产精品免费观看 | 在线成人免费视频| 日韩电影在线一区二区| 欧美精品一区视频| 成人中文字幕在线| 亚洲婷婷国产精品电影人久久| 在线精品视频免费观看| 日韩电影免费在线| 久久久国产精品麻豆| 成人av影院在线| 亚洲线精品一区二区三区八戒| 4438x亚洲最大成人网| 激情欧美日韩一区二区| 国产精品动漫网站| 欧美日韩精品一区二区三区四区| 另类小说图片综合网| 欧美韩日一区二区三区| 91麻豆文化传媒在线观看| 日韩高清在线观看| 日本一区二区三区四区在线视频| 色av综合在线| 美女国产一区二区| 1区2区3区国产精品| 欧美一区二区私人影院日本| 国产精品一区在线观看你懂的| 综合久久一区二区三区| 91精品国产欧美一区二区成人| 国产精品亚洲第一| 性久久久久久久久久久久| 久久久国际精品| 欧美影院一区二区| 狠狠狠色丁香婷婷综合激情| 亚洲三级久久久| 精品少妇一区二区三区视频免付费| av亚洲精华国产精华精华| 水野朝阳av一区二区三区| 欧美国产精品专区| 欧美精品123区| 成人一级黄色片| 日本视频免费一区| 亚洲欧美一区二区三区极速播放| 日韩欧美国产成人一区二区| 色婷婷综合久久久久中文| 国产夫妻精品视频| 日韩av一二三| 有坂深雪av一区二区精品| 亚洲国产精品传媒在线观看| 日韩欧美久久久| 欧美日韩国产综合视频在线观看| 成人av综合在线| 国产一区二区三区免费看|