max/cache

A cache package which supports File,Redis and Memcached.

1.0.1 2021-08-25 00:06 UTC

This package is auto-updated.

Last update: 2021-10-19 14:58:56 UTC


README


Max

轻量 • 简单 • 快速

68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344372e342d627269676874677265656e 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d617061636865253230322d626c7565

起步

缓存组件已经独立,不再必须使用MaxPHP,你可以使用下面的命令安装开发版本

composer require max/cache:dev-master

使用

如果你在使用MaxPHP则需要按照下面的教程来使用

安装

使用起步中的命令安装完成后框架会自动将配置文件cache.php移动到根包的config目录下,如果创建失败,可以手动创建。

注册服务提供者

如果你在使用MaxPHP,需要注册服务提供者

App\Http\Kernel::classproviders下注册服务提供者类\Max\Cache\CacheServiceProvider::class [非必须],或者注册类的别名到app.php 的配置文件中,例如

'aliases' => [
    \Psr\SimpleCache\CacheInterface::class => \Max\Cache\Cache::class,
],

使用门面,依赖注入或者助手函数(助手函数需要注册服务提供者才能使用)

\Max\Facades\Cache::get($key); //门面

cache() //助手函数

//依赖注入
pubilc function index(\Max\Cache\Cache $cache){
    $setter->get('stat');
}

如果你没有使用MaxPHP,可以按照下面的方式使用

如果你使用文件缓存,安装好后你可能需要修改配置中的缓存存放路径,参考代码

<?php

use Max\Cache\Cache;
use Max\Cache\CacheManager;

require './vendor/autoload.php';
//配置文件
$config = include './vendor/max/cache/src/cache.php';

$cacheManager = new CacheManager($config);
//如果需要切换存储,只需要将参数传递给get方法
$cache = $cacheManager->get();  
//设置缓存
$cache->set('stat', 12, 10);
//读取缓存
var_dump($cache->get('stat'));

配置文件

文件内容如下:

<?php

return [
    'default' => 'redis',
    'stores'  => [
        //文件缓存
        'file'      => [
            'handler' => \Max\Cache\Store\File::class,
            'options' => [
                'path' => env('cache_path') . 'app',
            ],
        ],
        // redis缓存
        'redis'     => [
            'handler' => \Max\Cache\Store\Redis::class,
            'options' => [
                //所有Redis的host[不区分主从]
                'host'   => [
                    '127.0.0.1',
                    '127.0.0.1',
                    '127.0.0.1',
                    '127.0.0.1',
                    '127.0.0.1',
                    '127.0.0.1',
                    '127.0.0.1',
                ],
                //端口 string / array
                'port'   => 6379,
                //密码 string / array
                'auth'   => '',
                //主Redis ID [host中主机对应数组的键]
                'master' => [0, 1, 4, 5],
                //从Redis ID [host中主机对应数组的键]
                'slave'  => [2, 3, 6]
            ],
        ],
        //memcached缓存
        'memcached' => [
            'handler' => \Max\Cache\Store\Memcached::class,
            'options' => [
                'host' => '127.0.0.1', //主机
                'port' => 11211        //端口
            ],
        ]
    ],
];

目前redis存储使用了max/redis包,所以实际连接的redis由redis.php配置文件中的配置决定

官网:https://www.chengyao.xyz