`
jxxms
  • 浏览: 107408 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java与php共享Memcached存储数据中的问题与解决方法

    博客分类:
  • java
阅读更多

Java与php共享Memcached存储数据中的问题与解决方法

Posted by Demon at 05:57 上午 on 18, Aug 2010

php写入的数据java读不出来,java写入的数据php读取乱码;
如果你根据php提供的memcache扩展协议来自行编写java memcached client将不会有问题,我们这里提到的是使用
java的 MemCachedClient 包;

php_extension: php_memcache.dll / memcache.so
java_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了。

分享到:
评论
1 楼 maozilee 2011-10-12  
我的用JSON传递没有问题,MEMCACHE会自动判断和序列化。

相关推荐

    基于内存的K-V数据平台(Memcached)

    3. **Session共享**:在分布式环境中,可以使用Memcached来存储用户Session,实现Session跨服务器共享。 4. **API缓存**:对于API的调用结果,可以暂时存储在Memcached中,减少计算和网络延迟。 **使用和管理** ...

    memcached 64位 window

    64位版本可以更有效地管理和利用现代服务器的大量RAM,允许Memcached存储更多缓存数据,提高整体性能。同时,由于64位架构的计算能力更强,处理复杂操作时效率更高。 **文件“nginx.txt”可能包含的内容** "nginx....

    Memcached使用--使用

    2. **分布式**:Memcached支持多台服务器之间的数据共享,可以构建分布式缓存系统,解决单一服务器内存限制问题。 3. **键值对存储**:数据以键值对的形式存储,键是唯一的标识符,值是存储的数据。 4. **短暂性**...

    Memcached网站应用实战

    3. **多主机支持**:Memcached支持多主机之间的数据共享,允许多个用户同时访问同一个缓存系统,从而解决了共享内存仅限于单机的问题。 4. **LRU算法**:Memcached使用LRU(Least Recently Used)算法来管理缓存中的...

    Memcached-1.2.6

    这个高性能的分布式内存对象缓存系统,旨在解决现代Web应用程序中数据库负载过重的问题。本文将深入探讨Memcached的核心功能、工作原理以及如何在实际开发中利用它来提升Web应用性能。 1. **什么是Memcached?** ...

    memcached服务器端安装程序

    - 分布式系统中的共享内存:在分布式环境中,Memcached可作为跨进程或跨服务器的数据共享机制。 5. 注意事项: - 安全性:Memcached不提供内置的安全措施,因此在生产环境中使用时,应配置防火墙规则或使用代理来...

    Memcached.pdf Memcached.pdf

    - Memcached 通过在网络中的多台服务器之间分布数据,解决了这个问题,提供了更为广泛和高效的缓存解决方案。 #### 六、安装与配置 1. **安装 libevent:** - Memcached 使用 libevent 来处理事件和异步操作。 ...

    最新版Memcached for windows + 源码

    Memcached是一款高性能、分布式内存对象缓存系统,它广泛应用于Web应用中,用来减轻数据库的负载,通过将数据存储在内存中,实现快速访问。这款软件最初由Danga Interactive开发,现已成为开源社区中的热门项目,...

    memcached server

    Memcached基于键值对(key-value store)存储模式,它将数据存储在内存中,由于内存的读取速度远超硬盘,因此能够显著提高数据访问效率。当一个请求到达时,Memcached会根据键查找对应的值,如果找到,直接返回,...

    Memcached分布式缓存

    - **使用Cache::Memcached连接memcached**:Perl中的Cache::Memcached模块提供了与memcached服务器交互的方法。 - **保存数据**:使用`set`命令将键值对保存到缓存中。 - **获取数据**:使用`get`命令从缓存中检索...

    memcached缓存系统

    3. **Session共享**:在分布式系统中,Memcached可用来存储用户的会话信息,实现跨服务器的Session共享。 4. **减少CDN回源**:配合内容分发网络(CDN),Memcached可以缓存静态资源,减少回源到源站的次数。 **安装...

    memcached客户端包memcached-1.4.12.tar.gz

    Memcached是一种高性能、分布式内存对象缓存系统,用于在分布式环境中快速存储和检索数据,以减轻数据库的负载。客户端包`memcached-1.4.12.tar.gz`是为开发者提供的工具,允许他们与memcached服务器进行交互,实现...

    memcached-windows64-1.4安装文件

    2. **session共享**:在分布式环境中,可以将用户session存储在Memcached中,实现跨服务器的session共享。 3. **API缓存**:对于重复的API请求,可以先从缓存中获取数据,降低API调用频率。 4. **数据库查询结果缓存...

    memcached

    - **Session共享**:在分布式环境中,可以使用Memcached共享用户session,避免session数据在服务器之间同步的问题。 **6. 与其他缓存系统的对比** Memcached专注于简单、高速的键值存储,而Redis则提供了更丰富的...

    memcached-1.6.12.tar.gz

    Memcached是一种轻量级的缓存解决方案,它基于简单的键值对存储,支持多语言接口,设计为通过网络在多个服务器之间共享小块内存。其主要特点包括: 1. **高性能**:memcached的设计目标是高效快速,它通过内存缓存...

    Memcached在大型网站中应用.doc

    Memcached 通过在内存中创建一个大型哈希表来存储各种类型的数据,如图片、视频、文件或数据库查询结果,以减少对数据库的直接访问,从而降低数据库负载,提高响应速度。 **工作原理与特点:** 1. **分布式存储**:...

    memcached-1.4.20.tar.gz

    1. **客户端库**:许多编程语言如Python、PHP、Java等都有官方或第三方提供的客户端库,方便与Memcached进行交互。 2. **操作命令**:基本的操作包括 `set`(设置键值对)、`get`(获取键值对)、`delete`(删除键值...

    memcached资料

    - **一致性哈希**:解决分布式环境中的数据分布问题,确保数据迁移时影响最小。 - **缓存击穿与雪崩**:应对大量请求导致缓存失效的场景,可通过预加载、限流、加锁等方式避免。 5. **最佳实践** - **数据设计**...

Global site tag (gtag.js) - Google Analytics