yii2 memcache跨平台处理

1. 先说说yii2 memcache对key、value的处理流程:

1.1 这是yii2的get方法

 

 

 1.2 这是yii2的set方法

 

 

 1.3 改变key主要就是buildKey方法

 

 

 2. 如果其他平台用的原生memcache或者其他处理,就会导致键值不同。

2.1 第一种解决办法,直接修改yii2的vendor\yiisoft\yii2\caching里的Cache.php的set、get方法,将调用buildKey方法的地方屏蔽,

优点就是省事,缺点就是更新、或者重新下载框架的vendor时会被覆盖,需要重新修改,也许还会忘记。

2.2 第二种解决办法就是重写yii2的set、get方法,一劳永逸。

2.2.1 修改配置文件web.php

 

 2.2.2 新增自定义memcache文件,文件路径与上面配置的要相同

app\modules\admin\common\MemcacheCustom

 

 2.2.3 继承yii2的memcache,重新set、get方法

 

 

2.2.4 调用方式同yii2原来的调用方式

Yii::$app->memcache->set($cachekey, $obj, 3600);
print_r(Yii::$app->memcache->get($cachekey));exit;

本文只是举例yii2和原生memcache的区别,如果是其他框架还需要研究源码的写法再做修改。

 

posted @ 2022-02-24 14:17  阿拉灯参丁  阅读(46)  评论(0)    收藏  举报