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的区别,如果是其他框架还需要研究源码的写法再做修改。