yii2 memcache 跨平台交互 键和值不一样
1 首先在配置文件中加载
web\basic\config\web.php
........'components' => ['request' => [// !!! insert a secret key in the following (if it is empty) - this is required by cookie validation'cookieValidationKey' => 'zhaoyang',],'mecache' => ['class' => 'yii\caching\MemCache','useMemcached' =>0, //这里简单说明一下 0是memcache, 1是memcached 两个是php里不同的扩展'servers' => [['host' => 'localhost','port' => 11211,]],],'user' => ['identityClass' => 'app\models\User','enableAutoLogin' => true,],
............
2 调用memcache
$mecache = Yii::$app->mecache; $mecache->set("key","value", 60);$mecache->get("key");
一般这么用是可以的,一点问题都没有
但是我与java 那边的memcache交出了问题
java 写的memcache,我拿不到
php 写的memcache, java拿不到
3 解决方法
web\basic\vendor\yiisoft\yii2\caching\Cache.php
//重写2个方法, 读写都调用这个方法public function myset($key, $value, $duration = 0, $dependency = null)
{return $this->setValue($key, $value, $duration);
}public function myget($key)
{return $this->getValue($key);
}
下面解释为什么这么做, 简单来讲, 程序做了加密, 去掉加密的那一层, php java 都读写统一就行了
4 分析
① $mecache = Yii::$app->mecache;
② \basic\vendor\yiisoft\yii2\caching\MemCache.php
③ class MemCache extends Cache 即成自cache \basic\vendor\yiisoft\yii2\caching\Cache.php
④ 查看原来yii2 的set 和 get 都做了加密处理
public function get($key){$key = $this->buildKey($key);$value = $this->getValue($key);if ($value === false || $this->serializer === false) {return $value;} elseif ($this->serializer === null) {$value = unserialize($value);} else {$value = call_user_func($this->serializer[1], $value);}if (is_array($value) && !($value[1] instanceof Dependency && $value[1]->getHasChanged($this))) {return $value[0];} else {return false;}}public function set($key, $value, $duration = 0, $dependency = null){if ($dependency !== null && $this->serializer !== false) {$dependency->evaluateDependency($this);}if ($this->serializer === null) {$value = serialize([$value, $dependency]);} elseif ($this->serializer !== false) {$value = call_user_func($this->serializer[0], [$value, $dependency]);}$key = $this->buildKey($key);return $this->setValue($key, $value, $duration);}
⑤ 按照上面的方法添加两个没有加密的直接读写 的memcache 问题就解决了
转载于:https://www.cnblogs.com/zhaoyang-1989/p/5406059.html
yii2 memcache 跨平台交互 键和值不一样相关推荐
- 第一个python程序:定义,列表,元组,集合,求并集交集,键和值,运算符,缩进
''' 来源:天善智能韦玮老师课堂笔记 ''' print("定义") a = 6 # python里无需定义 print("a=",a) a += 1 # + ...
- python中字典添加键对_关于python:如何向字典添加键、值对?
本问题已经有最佳答案,请猛点这里访问. 如何在字典中添加键.值对?.下面我提到了以下格式? {'1_somemessage': [[3L, 1L, u'AAA', 1689544L, datetime ...
- 如何在AngularJS中使用ng-repeat迭代键和值?
本文翻译自:How to iterate over the keys and values with ng-repeat in AngularJS? In my controller, I have ...
- 如何按PHP中给定键的值对关联数组进行排序?
给定这个数组: $inventory = array(array("type"=>"fruit", "price"=>3.50) ...
- hashmap允许null键和值吗_hashMap底层源码浅析
来源:https://blog.csdn.net/qq_35824590/article/details/111769203 hashmap是我们经常使用的一个工具类.那么知道它的一些原理和特性吗? ...
- requests(二): json请求中固定键名顺序消除键和值之间的空格
继上一篇requests发送json请求的文章后,实际工作中遇到了以下2种情况. 1:服务端要求json字符串,键名的顺序固定 2.服务端对于接收到的json数据中,若key和value之间有空格, ...
- python英语字典程序修改_详解如何修改python中字典的键和值
我们知道python中字典是无序的,它们都是通过hash去对应的.一般的如果我们需要修改字典的值,只需要直接覆盖即可,而修改字典的键,则需要使用字典自带的pop函数,示例如下: t = {} t['a ...
- Consul入门06 - 键/值对数据
为了提供服务发现以及健康检测,Consul提供了非常容易使用的键/值对存储.它能被用于存储动态配置信息,帮助服务协作,建构leader选举机制,以及开发者可以想到的建构任何其它的东西. 本篇假设你至少 ...
- java中map可以为空吗_Java: Map里面的键和值可以为空吗?
在Java中,Map里面的键和值可以为空吗?我们先来看一个例子: private static void TestHashMap() { // TODO Auto-generated method s ...
- python 取出字典的键或者值/如何删除一个字典的键值对/如何遍历字典
先定义一个字典并直接进行初始化赋值 my_dict = dict(name="lowman", age=45, money=998, hourse=None) 1.取出该字典所有的 ...
最新文章
- c语言嵌入式开发单片机,嵌入式开发|单片机基础
- python画双折线图-Python Pandas 时间序列双轴折线图
- Error APICloud iOS null is not an object
- DirectX9 SDK 下载、安装、VC++开发环境配置、跑通第一个例子
- CentOS中使用Docker来部署Tomcat
- 查看修改Linux时区和时间
- PrimeTime指南——概述和基本流程
- cli3解决 ie11语法错误 vue_基于 Vue + Koa2 + MongoDB + Redis 实现一个完整的登录注册...
- web漏洞扫描工具_如何使用Arachni扫描web漏洞
- Oracle学习笔记---(一)
- 互联网公司分批返岗;Safari 将封杀超过398天的 HTTPS 证书;TypeScript 3.8 发布 | 极客头条...
- 请求转发与重定向的区别
- java项目实现服务器监控,Java实现服务器状态监控
- python常用代码总结-Python基础常见问题总结(一)
- 在几何画板中如何制作圆柱的侧面展开动画_几何画板制作圆锥侧面展开图课件...
- 计算机网络原理(谢希仁第八版)第一章课后习题答案
- Linux 之查看 OpenCV 版本并卸载重装
- 给初学者推荐一个【免费的PHP教学视频】
- 安规X电容和Y电容的作用
- 必领空投一:4EVERLAND部署奖励