项目作者: wzzjjboy

项目描述 :
swoft框架通用缓存组件,基于swoft框架的aop实现
高级语言: PHP
项目地址: git://github.com/wzzjjboy/swoft-cache-proxy.git
创建时间: 2020-03-04T01:58:43Z
项目社区:https://github.com/wzzjjboy/swoft-cache-proxy

开源协议:

下载


swoft-cache-proxy

  1. 特性

    • 基于框架本身AOP和Annotation实现

    • 接入成本较低

  1. 安装

    composer require alan/swoft-cache-proxy

  1. 配置redis

    1. 'redis' => [
    2. 'class' => RedisDb::class,
    3. 'host' => env("REDIS_HOST"),
    4. 'port' => env("REDIS_PORT"),
    5. 'database' => env("REDIS_DATABASE"),
    6. 'retryInterval' => 10,
    7. 'readTimeout' => 0,
    8. 'timeout' => 2,
    9. 'password' => env("REDIS_PASSWORD"),
    10. 'driver' => 'phpredis',
    11. 'option' => [
    12. 'prefix' => 'swoft_app_name',
    13. 'serializer' => Redis::SERIALIZER_NONE,
    14. ],
    15. ],
    16. 'redis.pool' => [
    17. 'class' => \Swoft\Redis\Pool::class,
    18. 'redisDb' => \bean('redis'),
    19. 'minActive' => 10,
    20. 'maxActive' => 20,
    21. 'maxWait' => 0,
    22. 'maxWaitTime' => 0,
    23. 'maxIdleTime' => 60,
    24. ]
  1. 在业务上层代码引入Cache注解

    1. use alan\swoft_cache_proxy\Annotation\Mapping\Cache;
    2. use alan\swoft_cache_proxy\Helper\CacheRspHelper;
    3. /**
    4. * @Cache(isQuery=true)
    5. * @return array
    6. */
    7. public function testQuery() {
    8. $cacheFlagValue = 123;
    9. $now = time(); //业务代码
    10. return CacheRspHelper::makeRsp(['now' => $now], $cacheFlagValue);
    11. }
    12. /**
    13. * @Cache(isQuery=false)
    14. * @return array
    15. */
    16. public function testUpdate() {
    17. //... 业务上的更新操作
    18. $data = []; //业务操作返回
    19. return CacheRspHelper::makeRsp($data, $cacheFlagValue);
    20. }
    • 引入Cache注释,注意要引入命令空间
    • Cache注释有个isQuery的属性,如果当前的操作是查询则设置为true,如果当前是更新操作则为false.比如前当我们是从数据库里面查出某个用户的订单,这里会把查询结果缓存起来,如果是更新某个用户订单则会把之前查询的缓存清空。
    • 如果isQuery=ture时,返回数据时需要使用CacheRspHelper::makeRsp函数返回。第一个参数为业务层返回的数据(即需要缓存的数据)、第二个参数为缓存数据的归属者标识字段,如何上面我们查询的是某用户(uid=10000)的订单列表数据,那这里应该传入该用户的uid(即10000).
    • 上层(比如控制器)获取数据时需要调用CacheRspHelper::getRsp函数