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 跨平台交互 键和值不一样相关推荐

  1. 第一个python程序:定义,列表,元组,集合,求并集交集,键和值,运算符,缩进

    ''' 来源:天善智能韦玮老师课堂笔记 ''' print("定义") a = 6 # python里无需定义 print("a=",a) a += 1 # + ...

  2. python中字典添加键对_关于python:如何向字典添加键、值对?

    本问题已经有最佳答案,请猛点这里访问. 如何在字典中添加键.值对?.下面我提到了以下格式? {'1_somemessage': [[3L, 1L, u'AAA', 1689544L, datetime ...

  3. 如何在AngularJS中使用ng-repeat迭代键和值?

    本文翻译自:How to iterate over the keys and values with ng-repeat in AngularJS? In my controller, I have ...

  4. 如何按PHP中给定键的值对关联数组进行排序?

    给定这个数组: $inventory = array(array("type"=>"fruit", "price"=>3.50) ...

  5. hashmap允许null键和值吗_hashMap底层源码浅析

    来源:https://blog.csdn.net/qq_35824590/article/details/111769203 hashmap是我们经常使用的一个工具类.那么知道它的一些原理和特性吗? ...

  6. requests(二): json请求中固定键名顺序消除键和值之间的空格

    继上一篇requests发送json请求的文章后,实际工作中遇到了以下2种情况. 1:服务端要求json字符串,键名的顺序固定  2.服务端对于接收到的json数据中,若key和value之间有空格, ...

  7. python英语字典程序修改_详解如何修改python中字典的键和值

    我们知道python中字典是无序的,它们都是通过hash去对应的.一般的如果我们需要修改字典的值,只需要直接覆盖即可,而修改字典的键,则需要使用字典自带的pop函数,示例如下: t = {} t['a ...

  8. Consul入门06 - 键/值对数据

    为了提供服务发现以及健康检测,Consul提供了非常容易使用的键/值对存储.它能被用于存储动态配置信息,帮助服务协作,建构leader选举机制,以及开发者可以想到的建构任何其它的东西. 本篇假设你至少 ...

  9. java中map可以为空吗_Java: Map里面的键和值可以为空吗?

    在Java中,Map里面的键和值可以为空吗?我们先来看一个例子: private static void TestHashMap() { // TODO Auto-generated method s ...

  10. python 取出字典的键或者值/如何删除一个字典的键值对/如何遍历字典

    先定义一个字典并直接进行初始化赋值 my_dict = dict(name="lowman", age=45, money=998, hourse=None) 1.取出该字典所有的 ...

最新文章

  1. c语言嵌入式开发单片机,嵌入式开发|单片机基础
  2. python画双折线图-Python Pandas 时间序列双轴折线图
  3. Error APICloud iOS null is not an object
  4. DirectX9 SDK 下载、安装、VC++开发环境配置、跑通第一个例子
  5. CentOS中使用Docker来部署Tomcat
  6. 查看修改Linux时区和时间
  7. PrimeTime指南——概述和基本流程
  8. cli3解决 ie11语法错误 vue_基于 Vue + Koa2 + MongoDB + Redis 实现一个完整的登录注册...
  9. web漏洞扫描工具_如何使用Arachni扫描web漏洞
  10. Oracle学习笔记---(一)
  11. 互联网公司分批返岗;Safari 将封杀超过398天的 HTTPS 证书;TypeScript 3.8 发布 | 极客头条...
  12. 请求转发与重定向的区别
  13. java项目实现服务器监控,Java实现服务器状态监控
  14. python常用代码总结-Python基础常见问题总结(一)
  15. 在几何画板中如何制作圆柱的侧面展开动画_几何画板制作圆锥侧面展开图课件...
  16. 计算机网络原理(谢希仁第八版)第一章课后习题答案
  17. Linux 之查看 OpenCV 版本并卸载重装
  18. 给初学者推荐一个【免费的PHP教学视频】
  19. 安规X电容和Y电容的作用
  20. 必领空投一:4EVERLAND部署奖励

热门文章

  1. LINUX获取当前用户及信息的命令
  2. warning C4996 sprintf This function or variable may be unsafe
  3. 编译OpenJDK8:CreateJars.gmk/BuildJdk.gmk/Main.gmk/错误
  4. SHELL中从变量中截取后缀、文件名、目录名
  5. 想起一则急着争权的故事
  6. 龙芯指令集也可以开源
  7. python POST发送多个段(如json消息+文件)
  8. 广西民族博物馆真好玩
  9. 手机应用宝占用了8G
  10. 对华为GPU Turbo实现的猜测