美文网首页
JS实现LRU

JS实现LRU

作者: 奋斗_登 | 来源:发表于2023-10-24 22:17 被阅读0次

    LRU(Least Recently Used)是一种缓存淘汰策略,它删除最近最少使用的项目以腾出空间。在 JavaScript 中,你可以实现一个 LRU 缓存来管理数据,以便在内存有限的情况下,始终保留最常用的数据。

    下面是一个简单的 JavaScript LRU 缓存的实现,它使用 Map 来存储数据,并保持缓存的大小不超过指定的限制:

    class LRUCache {
      constructor(capacity) {
        this.capacity = capacity;
        this.cache = new Map();
      }
    
      get(key) {
        if (this.cache.has(key)) {
          // 将最近访问的数据移到最前面
          const value = this.cache.get(key);
          this.cache.delete(key);
          this.cache.set(key, value);
          return value;
        }
        return -1; // 未找到
      }
    
      put(key, value) {
        if (this.cache.has(key)) {
          // 如果 key 存在,更新值,并将其移到最前面
          this.cache.delete(key);
        } else if (this.cache.size >= this.capacity) {
          // 如果缓存已满,删除最旧的数据(最后一个数据)
          const firstKey = this.cache.keys().next().value;
          this.cache.delete(firstKey);
        }
        this.cache.set(key, value);
      }
    }
    

    这个 LRUCache 类实现了一个简单的 LRU 缓存,通过 get 方法获取数据并将数据移到最前面,通过 put 方法添加数据并维护缓存大小不超过指定容量。你可以根据需要将这个基本示例扩展为更复杂的缓存管理器,以满足你的项目需求。

    相关文章

      网友评论

          本文标题:JS实现LRU

          本文链接:https://www.haomeiwen.com/subject/ebasidtx.html