kosmosx / cache
Laravel / Lumen 框架的缓存服务。
1.0.0
2019-08-24 11:25 UTC
Requires
- php: >=7.1.3
- illuminate/redis: >=5.7
- kosmosx/helpers: ~1.0
- laravel/lumen-framework: >=5.7
- predis/predis: ^1.1
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()