millken/lrucache

PHP LRU 缓存实现

v1.0.1 2018-08-30 14:22 UTC

This package is auto-updated.

Last update: 2024-09-24 04:23:04 UTC


README

Build Status Coverage Status

PHP LRU 缓存实现

https://github.com/rogeriopvl/php-lrucache 分支而来

变更

  • 将插入缓存的成本从 O(n) 降低到 O(1)
  • 使缓存可迭代
  • 修复 phpunit 测试

简介

什么是 LRU 缓存?

LRU 代表最不经常使用。它是一种通常具有固定容量的缓存,会丢弃最旧的条目。如果你需要控制缓存内存使用量,这特别有用。

如果你想了解更多关于 LRU 缓存的信息,可以阅读 这篇文章,它对 LRU 缓存进行了很好的解释。此外,如果你想了解更多有趣的信息,可以阅读关于 LRU 算法的 这篇优秀论文

实现

这段代码还处于早期阶段。我需要编写更多的测试来找出可能的低效代码部分,以便在 PHP 中实现一些性能,如果可能的话 :P

这个实现类似于 LinkedHashMap。目前我只是随意修改代码,决定保持简单,使用简单的关联数组作为原始的哈希表。

安装(composer)

将包添加到你的 composer.json 文件中

"require": {
    "justin-robinson/lrucache": "dev-master"
}

然后运行以下命令

composer install

使用方法

使用方法非常简单

require_once('vendor/autoload.php'); // composer autoader

$cache = new \LRUCache\LRUCache(1000);

$cache->put('mykey', 'arrow to the knee');

echo $cache->get('mykey');

你可以使用测试来尝试负载测试等操作。