Java与php共享Memcached存储数据中的有关问题与解决办法
程序员文章站
2022-04-05 21:01:22
...
Java与php共享Memcached存储数据中的问题与解决方法
Java与php共享Memcached存储数据中的问题与解决方法
php写入的数据java读不出来,java写入的数据php读取乱码;
如果你根据php提供的memcache扩展协议来自行编写java memcached client将不会有问题,我们这里提到的是使用
java的 MemCachedClient 包;
php_extension: php_memcache.dll / memcache.sojava_jar: MemCachedClient [com.danga.MemCached.*]
解决方案:
经过查看MemCachedClient源码,发现是 set 时 flags不同,java是根据存储值类型来订flags的。
public static final int MARKER_BYTE = 1; public static final int MARKER_BOOLEAN = 8192; public static final int MARKER_INTEGER = 4; public static final int MARKER_LONG = 16384; public static final int MARKER_CHARACTER = 16; public static final int MARKER_STRING = 32; public static final int MARKER_STRINGBUFFER = 64; public static final int MARKER_FLOAT = 128; public static final int MARKER_SHORT = 256; public static final int MARKER_DOUBLE = 512; public static final int MARKER_DATE = 1024; public static final int MARKER_STRINGBUILDER = 2048; public static final int MARKER_BYTEARR = 4096;
为了方便,两者间的数据转换使用JSON格式;
php与java在存储的时候值类型均要求为String类型,
并且php在$mem->set(key,value,32,expire);加粗部门要注意,这个是必须的。
然后php写入的数据,java那边就能够顺利读取了,当php写入array,object时,java读取后json.decode就OK了。
- 最新文章
- 热门排行
上一篇: phpcms v9模板制作教程(三)
下一篇: 如何处理vue axios请求超时的问题
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
相关文章
相关视频
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论专题推荐
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习