`
lgcjar
  • 浏览: 18375 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

memcached 不同客户端存取值问题

阅读更多
本人接触memcached不多,希望下面的问题能帮助到遇到同样问题的同学,作为个人日记记录一下。
昨天调试memcached发现,在手机端存进去的值,java端没取到。

一般我们只关注 key 和 value ,发现并无问题;然后好好看了下 flags。

查源码发现
 cmd = cmdname + " " + key + " " + flags + " " + expiry.getTime() / 1000L + " ";


flags = NativeHandler.getMarkerFlag(value);


继续看源码:
public static final int getMarkerFlag(Object value)
    {
        if(value instanceof Byte)
            return 1;
        if(value instanceof Boolean)
            return 8192;
        if(value instanceof Integer)
            return 4;
        if(value instanceof Long)
            return 16384;
        if(value instanceof Character)
            return 16;
        if(value instanceof String)
            return 32;
        if(value instanceof StringBuffer)
            return 64;
        if(value instanceof Float)
            return 128;
        if(value instanceof Short)
            return 256;
        if(value instanceof Double)
            return 512;
        if(value instanceof Date)
            return 1024;
        if(value instanceof StringBuilder)
            return 2048;
        return !(value instanceof byte[]) ? 0 : 4096;
    }

终于明白了,java string 类型存储默认flags=32。
修正set flags再测试,问题解决。
0
0
分享到:
评论

相关推荐

    memcached C++ 客户端 源码

    标题"memcached C++ 客户端 源码"表明了这是一个关于使用C++编写的memcached客户端的源代码库。memcached是一款高性能、分布式的内存对象缓存系统,常用于减轻数据库负载,提高Web应用性能。C++客户端则为开发者提供...

    memcached客户端(三种客户端)

    它的优点在于存取速度较快,但在高并发环境下可能会遇到稳定性问题,如报告超时异常。适合对性能有较高要求且能接受一定程度不稳定性的项目。 3. **XMemcached** XMemcached同样是基于Java NIO实现的客户端,充分...

    memcached 完整的项目,服务端(win) 客户端 包括jar包

    4. **故障恢复**:当 Memcached 服务端宕机后,Java 客户端可能会遇到连接问题,需要有适当的重试机制。 总之,Memcached 项目为开发者提供了一个高效、易用的缓存解决方案,通过 Java 客户端可以轻松地在 Java ...

    memcached的三种java客户端jar

    2.spymemcached,支持异步,单线程的memcached客户端,用到了java1.5版本的concurrent和nio,存取速度会高于前者,但是稳定性不好,测试中常 报timeOut等相关异常。 3.xmemcached,XMemcached也使用得比较广泛,而且...

    memcached客户端

    标题中的"memcached客户端"指的是与Memcached服务器进行交互的应用程序或库,这些客户端实现了连接、发送请求和接收响应的功能,为开发者提供了便捷的方式来存取缓存数据。在没有标准客户端的情况下,开发自定义的...

    php的memcached客户端memcached

    根据描述,memcached客户端具有更多的功能和更优的性能。 libmemcached是一个用来操作memcached服务器的C/C++客户端库,支持memcached协议,并提供了一系列API,使得开发者能够通过编程来存取缓存数据。memcached...

    Memcached实例与文档

    压缩包中的文档可能包括了Memcached的官方文档、用户手册、教程、示例代码等,这些都是学习和解决Memcached使用过程中问题的宝贵资源。建议仔细阅读和实践,以便深入理解和掌握Memcached。 总之,Memcached作为一款...

    java_memcached-release_2.6.6.rar

    Java Memcached客户端是一个高效、轻量级的缓存系统,用于存储和检索数据,通过减少数据库的负载来提高Web应用程序的性能。这个“java_memcached-release_2.6.6.rar”压缩包文件包含了用于与Memcached服务器通信的...

    memcached详解.pdf

    在不同的操作系统上,安装memcached的方法有所不同。通常,可以通过包管理器(如apt-get或brew)进行安装。安装完成后,需要启动memcached服务,以便客户端可以连接。 1.4 用客户端连接 要与memcached交互,需要一...

    Memcached 原理和使用详解

    4. 在应用程序中集成Memcached,使用客户端库进行数据的存取操作。 **类似Memcached的解决方案**: 1. **Tokyo Cabinet**:一个日本开发的键值对存储系统,提供了多种数据结构,如B+树和哈希表,适用于持久化存储...

    memcached服务端windows版

    3. **客户端连接**:多种编程语言都有支持memcached的客户端库,如PHP、Python、Java、C#等,开发者可以使用这些库与memcached服务端交互,执行存取操作。 4. **安全性**:由于memcached默认不提供安全措施,如身份...

    python-memcached python-memcached

    Python-memcached库的使用方法相对简单,通常需要导入库,创建客户端,然后通过客户端对象进行数据的存取操作。例如: ```python import memcache mc = memcache.Client(['127.0.0.1:11211'], debug=0) mc.set('my...

    memcached.exe及memcached.dll

    2. **memcached.dll**:这是一个动态链接库文件,在Windows环境下,某些程序可能依赖这个库文件来与Memcached服务进行通信,提供客户端接口,以便应用程序能够存取缓存中的数据。 **三、使用场景** 1. **Web应用...

    java_memcached-release_2.6.3.zip

    在这个版本的Java Memcached客户端中,它用于记录程序运行过程中的信息,便于调试和问题排查。 4. **slf4j-simple-1.6.1.jar**:SLF4J的简单实现,它提供了一个简单的日志记录机制。当不希望使用复杂的日志框架,...

    memcached完整jar包及实例

    除了基本的`set`和`get`操作,Memcached客户端还支持其他高级功能,如批量操作、原子操作(increment/decrement)、过期时间的设置、以及基于键的删除等。这些功能可以帮助优化应用性能,避免不必要的数据库交互。 ...

    tomcat7.0+memcached 依赖jar包

    1. **获取Memcached客户端库**:为了在Java代码中与Memcached通信,你需要一个Java客户端库,如spymemcached或xmemcached。这些库提供了与Memcached服务器交互的API。 2. **添加依赖**:将下载的Memcached客户端库...

    易语言Memcached协议客户端模块源码-易语言

    参照网上的 Memcached 协议实现的客户端,可靠性方面应该还是不错的,和昨天的 Redis 协议一样,应该能适用于正式项目。 总共耗费 2 个多小时完成,不可否认,用纯易语言实现 Memcached 客户端很酷。 如果要用于您的...

    Memcached相关DLL文件

    2. libmemcached.dll:这是Memcached的客户端库,包含了与服务器通信的函数和数据结构。开发人员可以使用这个库来与Memcached服务器进行交互,存取数据。 3. cygwin1.dll:这是一个用于在Windows上模拟Linux环境的...

    memcached-release_2.6.6

    2. **java_memcached-release_2.6.6.jar**:这应该是Java语言的Memcached客户端库,用于与Memcached服务器通信,执行添加、获取、删除等操作。 3. **slf4j-api-1.6.1.jar** 和 **slf4j-simple-1.6.1.jar**:SLF4J...

    memcached所需JAR包

    例如,`memcached-2.5.jar`是Java版的Memcached客户端,它提供了连接到Memcached服务器并执行操作的基本功能。 2. **序列化**: `javolution-5.5.1.jar`包含了Java优化的通用数据结构和算法库Javolution,该库也常...

Global site tag (gtag.js) - Google Analytics