kosmosx/cache

Laravel / Lumen 框架的缓存服务。

维护者

详细信息

github.com/KosmosX/cache

源代码

问题

安装: 936

依赖项: 0

建议者: 0

安全: 0

星标: 19

关注者: 4

分支: 2

开放问题: 0

类型:lumen-package

1.0.0 2019-08-24 11:25 UTC

This package is auto-updated.

Last update: 2024-09-25 07:58:40 UTC


README

为什么要使用它?

轻松管理缓存。此包有助于更好地管理文件或Redis缓存。实现了使用json编码序列化的函数,以使缓存可传输并由其他外部微服务使用。

安装 & 配置
composer require kosmosx/cache

您必须在bootstrap/app.php文件中输入以下提供者:取消注释函数

$app->withFacades();

在bootstrap文件中加载配置

$this->configure('cache');
$this->configure('database');

或者将配置发布在您的Service Provider中

$this->publishes([
    'Kosmosx/Cache/config/cache.php' => config_path('cache.php')
], 'config');

$this->publishes([
    'Kosmosx/Cache/config/database.php' => config_path('database.php')
], 'config');

注册服务提供者

$app->register(Kosmosx\Cache\CacheServiceProvider::class);

文档

一旦您已配置好使用它

$factory = app('factory.cache');            //return CacheFactory
$builderFile = $factory->file();            //return FileBuilder
$builderRedis = $factory->redis();          //return RedisBuilder
    
$file = app('service.cache.file');          //FileCommand
$redis = app('service.cache.redis');        //RedisCommand

SET

//If you use builder obj  
$builderRedis->default()->set($key, $value, $ttl);          //build FileCommand with DefaultSerializer and set cache
$builderRedis->response()->set($response, $value, $ttl);
$builderRedis->collect()->set($collect, $value, $ttl);

//With services 
$file->set($key, $value, $ttl);
$redis->set($key, $value, $ttl);

批量SET

//array example: ["key" => $value, "key2" => $value2 ...]
//$ttl for all values

$builderFile->default()->setMany(array $values, $ttl);

$file->setMany(array $values, $ttl);
$redis->setMany(array $values, $ttl);

GET

$file->get($key, $serializer);
$redis->get($key, $serializer);

批量GET

//array example: ["key", "key2", "keyN" ...]

$file->getMany(array $keys);
$redis->getMany(array $keys);

序列化器

存储在缓存(Redis / 文件)中的所有数据都使用json编码进行序列化,以便其他语言可以传输。可以使用类型化序列化器,这样在恢复时可以重建初始对象。

//Serializer 
ResponseSerializer()  //If you want cache Response object 
CollectSerializer()   //If you want cache Collect object 
DefaultSerializer()   //default cache

...->setSerializer(new ResponseSerializer());

自定义序列化器

如果您想创建自己的序列化器,只需创建一个继承自SerializerAbstract的类。

use Kosmosx\Cache\Serializer\Abstracts\Serializer;
use Kosmosx\Cache\Serializer\Interfaces\SerializerInterface;
    
class {name} extends Serializer implements SerializerInterface

其他功能

 //Use class cache manager 
 ...->manager()	//return istance of Illuminate/Redis or CacheManager     
 
 ...->forget(string $keys)
 ...->forgetMany(array $keys)
 
 ...->setAutodetect($bool)
 ...->getAutodetect()
 
 ...->clear()