`
ltfgood123
  • 浏览: 651 次
  • 性别: Icon_minigender_2
  • 来自: 济南
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

c++与java共用memcached的问题

 
阅读更多
       最初使用的是danga的memcachedClient,处理单一语言对memcache的数据存储没有遇到问题,后来由于业务需要,要由C++存储数据,JAVA负责取数据。Memcache有二进制和文本两种存储方式,我们统一使用二进制,C++侧存入序列化之后的序列,我们JAVA侧取到数据后进行反序列化,这时danga的bug就暴露出来了,无法取到memcache服务器中由C++侧放入的数据。于是我们放弃danga,改用性能更高更强大的xmemcache。

         Xmemcache无需设置使用二进制还是文本方式,它会自动判断并成功存取。由于数据中存在汉字,我们统一使用GBK编码存取数据,给XMemcachedClient设置Transcoder属性即可,即

memclient.setTranscoder(new StringTranscoder("gbk"));

这样对于memcache中的二进制序列,就可以作为字符串的格式获取到,之后再进行反序列化即可。

        事情并没有就此结束,我们不仅仅需要读取C++侧存入的序列,更有原本就需要自行存取的JAVA对象。使用StringTranscoder仅仅用于字符串的存取,若想要存入JAVA对象它是办不到的,会提示你要存入的这个对象无法强转为String类型。我们发现,StringTranscoder是Transcoder的一个子类,Transcoder下面还有好多其他子类。那其中应该总有一个是允许我们存取JAVA对象的吧。没错,就是它,SerializingTranscoder。不论存取的是JAVA对象还是序列化后的字节,它都能坦然应对。不过它的构造方法里不含参数,需要通过设置其charset属性来设置编码,即

SerializingTranscoder transcoder = new SerializingTranscoder();

transcoder.setCharset("GBK");

memclient.setTranscoder(transcoder);

        至此,大功告成。

分享到:
评论

相关推荐

    java-memcached-2.6.6.jar

    java-memcached-2.6.6.jar

    java_memcached-release_2.5.1.jar Memcache java jar 包

    Java Memcached是一个流行的Java客户端库,用于与Memcached缓存系统进行交互。Memcached是一种分布式内存对象缓存系统,常用于减轻数据库负载,提高Web应用的性能。在本例中,我们关注的是`java_memcached-release_...

    java_memcached-release_2.6.6.zip

    memcache客户端jar包: 1,java_memcached-release_2.6.6.jar 2,commons-pool-1.5.6.jar 3,slf4j-api-1.6.1.jar 4,slf4j-simple-1.6.1.jar

    memcached-1.2.1-win32.zip 和 java_memcached-release_1.6.zip

    `java_memcached-release_1.6.zip` 文件则是Java语言的Memcached客户端库,允许Java开发者方便地与Memcached服务器进行交互。这个客户端库通常称为spymemcached,它提供了丰富的API,使开发者可以轻松地存储和检索...

    java_memcached-release_2.6.2.jar

    java_memcached-release_2.6.2.jar java缓存工具 memcached

    java+memcached所需文件

    Java与Memcached结合使用可以构建高性能的分布式缓存系统,以提高Web应用程序的响应速度和数据处理能力。这里提供的文件包含在Windows环境下运行Memcached以及Java应用中集成Memcached所需的必要组件。 首先,我们...

    java使用Memcached简单教程

    接下来,我们可以编写一个简单的Java类来演示如何与Memcached交互: ```java import net.spy.memcached.AddrUtil; import net.spy.memcached.MemcachedClient; public class MemcachedExample { private static ...

    java使用memcached的实例

    在这个示例中,`MemcachedAction`继承了`BaseAction`类,并实现了与Memcached交互的方法。`test()`方法演示了如何将数据存入缓存以及从缓存中读取数据的过程。 ### 四、总结 本文详细介绍了如何在Java项目中使用...

    java_memcached-release_1.6.zip

    Java Memcached是一个基于Java的客户端库,用于与Memcached服务器进行通信。Memcached是一种高性能、分布式内存对象缓存系统,广泛应用于减轻数据库负载,提高Web应用的响应速度。在Java应用中,Java Memcached...

    java_memcached-release_2.6.3.zip

    Java Memcached 客户端是Java开发者用于与Memcached分布式内存缓存系统交互的一个库。在版本2.6.3中,它提供了高效且可靠的连接管理,以及对Memcached服务器的全面支持。这个压缩包“java_memcached-release_2.6.3....

    java_memcached-release_2.0.1.jar

    java_memcached-release_2.0.1.jar。jdk5版本适用。使用log4j。

    java_memcached-release_2.6.6.rar

    这个“java_memcached-release_2.6.6.rar”压缩包文件包含了用于与Memcached服务器通信的Java库,使得Java开发者能够便捷地集成Memcached到他们的应用中。 Memcached是一个分布式内存对象缓存系统,最初由Danga ...

    java_memcached-release_2.6.6.jar及其依赖包

    Java Memcached是一个基于Java的Memcached客户端库,用于在Java应用程序中与Memcached缓存系统进行交互。在标题和描述中提到的`java_memcached-release_2.6.6.jar`是这个库的特定版本,它包含了实现Memcached协议并...

    java中连接memcached服务器

    Java连接Memcached服务器是开发过程中常见的一环,尤其是在构建分布式系统时,利用Memcached作为缓存服务可以显著提升数据访问速度。Memcached是一款高性能、分布式内存对象缓存系统,能够临时存储键值对数据,减轻...

    java_memcached-release_2.6.3.rar 客户端所有包

    Java Memcached客户端是Java开发者用来与Memcached分布式内存缓存系统进行交互的工具。这个`java_memcached-release_2.6.3.rar`压缩包包含了用于Java客户端开发所需的全部依赖库,使得开发者能够轻松地在Java应用中...

    java连接memcached示例代码

    首先,我们需要引入一个Java库来与Memcached通信,例如spymemcached或xmemcached。这两个库提供了Java客户端,方便我们进行API调用。这里以spymemcached为例,你可以通过Maven或Gradle将依赖添加到项目中: ```xml ...

    java_memcached-release_1.3.2的演示工程(JDK1.4)

    1. **Java与Memcached的连接**:Java Memcached客户端库提供了一组API,使得开发者可以通过TCP或UDP协议连接到Memcached服务器。连接过程包括配置服务器地址、端口号,以及建立Socket通信。 2. **缓存操作**:主要...

    java_memcached-release_2.5.1

    Memcached Cache现在已经被大家广泛使用,但是千万不要认为对Cache的操作是低损耗的,要知道这类集中式Cache对Socket连接数(会牵涉到linux操作系统文件句柄可用数),带宽,网络IO都是有要求的,有要求就意味着会有...

    oracle掉用memcached,得用oracle调用java,java调用memcached

    3. **Java Memcached客户端**:`java_memcached-release_2.6.6`是Java的Memcached客户端库,包含了与Memcached服务器交互所需的方法。开发人员会使用这个库编写Java代码,实现设置和获取缓存值的接口。 4. **设置和...

Global site tag (gtag.js) - Google Analytics