微前端架构如何改变企业的开发模式与效率提升
949
2022-10-17
swoft框架通用缓存组件,基于swoft框架的aop实现
swoft-cache-proxy
特性 基于框架本身AOP和Annotation实现 接入成本较低 安装 composer require alan/swoft-cache-proxy 配置redis'redis' => [ 'class' => RedisDb::class, 'host' => env("REDIS_HOST"), 'port' => env("REDIS_PORT"), 'database' => env("REDIS_DATABASE"), 'retryInterval' => 10, 'readTimeout' => 0, 'timeout' => 2, 'password' => env("REDIS_PASSWORD"), 'driver' => 'phpredis', 'option' => [ 'prefix' => 'swoft_app_name', 'serializer' => Redis::SERIALIZER_NONE, ],],'redis.pool' => [ 'class' => \Swoft\Redis\Pool::class, 'redisDb' => \bean('redis'), 'minActive' => 10, 'maxActive' => 20, 'maxWait' => 0, 'maxWaitTime' => 0, 'maxIdleTime' => 60,] 在业务上层代码引入Cache注解use alan\swoft_cache_proxy\Annotation\Mapping\Cache;use alan\swoft_cache_proxy\Helper\CacheRspHelper;/** * @Cache(isQuery=true) * @return array */public function testQuery() { $cacheFlagValue = 123; $now = time(); //业务代码 return CacheRspHelper::makeRsp(['now' => $now], $cacheFlagValue);}/** * @Cache(isQuery=false) * @return array */public function testUpdate() { //... 业务上的更新操作 $data = []; //业务操作返回 return CacheRspHelper::makeRsp($data, $cacheFlagValue);}
- 引入Cache注释,注意要引入命令空间 - Cache注释有个isQuery的属性,如果当前的操作是查询则设置为true,如果当前是更新操作则为false.比如前当我们是从数据库里面查出某个用户的订单,这里会把查询结果缓存起来,如果是更新某个用户订单则会把之前查询的缓存清空。 - 如果isQuery=ture时,返回数据时需要使用CacheRspHelper::makeRsp函数返回。第一个参数为业务层返回的数据(即需要缓存的数据)、第二个参数为缓存数据的归属者标识字段,如何上面我们查询的是某用户(uid=10000)的订单列表数据,那这里应该传入该用户的uid(即10000). - 上层(比如控制器)获取数据时需要调用CacheRspHelper::getRsp函数
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~