PHPackages                             mustafa3264/lrucache - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Caching](/categories/caching)
4. /
5. mustafa3264/lrucache

ActiveLibrary[Caching](/categories/caching)

mustafa3264/lrucache
====================

swoole table - redis use lru for hyperf cache

v1.0.3(3y ago)420MITPHP

Since Nov 24Pushed 3y ago1 watchersCompare

[ Source](https://github.com/jiangliuer326442/hyperf-lrucache)[ Packagist](https://packagist.org/packages/mustafa3264/lrucache)[ RSS](/packages/mustafa3264-lrucache/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (4)Used By (0)

hyperf lrucache
===============

[](#hyperf-lrucache)

基于swoole hyperf框架开发的，支持从 数据库 - redis - swoole table 三级缓存，支持给数据设置过期时间。

swoole table 通过lru淘汰算法清理早期插入的数据，通过限制swoole table的数据量，控制本地内存缓存使用量。

redis缓存使用 hash+zset 的组合存储数据，支持根据过期时间自动清理数据。

redis缓存更新通过监听数据库的修改和删除事件完成，在多实例swoole table缓存的更新则依赖redis的pub/sub机制

插件提供对swoole table的使用进行监控，以及lrucache 三级缓存的命中情况的监控

监控
--

[](#监控)

```
# HELP beego_learning_swoole_table_hit_db count swoole table hit db
# TYPE beego_learning_swoole_table_hit_db counter
beego_learning_swoole_table_hit_db{table="role"} 1
beego_learning_swoole_table_hit_db{table="user"} 5
# HELP beego_learning_swoole_table_hit_lru count swoole table hit lru
# TYPE beego_learning_swoole_table_hit_lru counter
beego_learning_swoole_table_hit_lru{table="role"} 9
beego_learning_swoole_table_hit_lru{table="user"} 5
# HELP beego_learning_swoole_table_hit_redis count swoole table hit redis
# TYPE beego_learning_swoole_table_hit_redis counter
beego_learning_swoole_table_hit_redis{table="user"} 5
# HELP beego_learning_swoole_table_length gauge swoole table length
# TYPE beego_learning_swoole_table_length gauge
beego_learning_swoole_table_length{table="role"} 1
beego_learning_swoole_table_length{table="user"} 5
# HELP beego_learning_swoole_table_lru_length gauge swoole table lru length
# TYPE beego_learning_swoole_table_lru_length gauge
beego_learning_swoole_table_lru_length{table="role"} 5
beego_learning_swoole_table_lru_length{table="user"} 5
# HELP beego_learning_swoole_table_max_length gauge swoole table max length
# TYPE beego_learning_swoole_table_max_length gauge
beego_learning_swoole_table_max_length{table="role"} 64
beego_learning_swoole_table_max_length{table="user"} 64
# HELP beego_learning_swoole_table_size gauge swoole table size
# TYPE beego_learning_swoole_table_size gauge
beego_learning_swoole_table_size{table="role"} 142816
beego_learning_swoole_table_size{table="user"} 242832

```

- **swoole\_table\_hit\_lru** 缓存 swoole table 命中次数
- **swoole\_table\_hit\_redis** redis缓存命中次数
- **swoole\_table\_hit\_db** 缓存命中失败，查询db次数
- **swoole\_table\_length** swoole table 实际存放数据的数量
- **swoole\_table\_lru\_length** swoole table lru淘汰算法配置的最大数量
- **swoole\_table\_max\_length**\* swoole table 的最大容量
- **swoole\_table\_size** swoole table占用的内存 bit

接入
--

[](#接入)

### 安装

[](#安装)

```
composer require mustafa3264/lrucache
```

### 配置

[](#配置)

```
php bin/hyperf.php vendor:publish mustafa3264/lrucache
```

配置文件如下

```
