`
hxy520882012
  • 浏览: 28142 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Memcached expire 设置错误引起的set(key,exp,value)为true而get(key)为null的问题

 
阅读更多

最近项目中使用到了Memcached,而客户端选择了XMemcached ,在设置过期时间时,因对Memcached 不熟悉,将expire 设置为1000000000,本意表示尽量长的时间不要过期,但在测试时发现,memcachedClient.set(key,exp,value)结果返回true,即代表该项已成功存入缓存,但当调用memcachedClient.get(key)时始终返回为null,起初以为key的生成策略有误,后来当把exp填了个1000时,Memcached的set 和 get方法均返回true,看来问题出在expire,所以查了下文档,发现Memcached默认expire为0即代表永不过期,而这个过期时间最长为30天= 30*24*60*60 = 2592000秒,所以又将expire配置为2592000秒,发现正常执行,为了测试Memcached是否为最长30天,又将该值加了1变成2592001,此时出现了和开始一样的错误,set返回 true,但get返回为null,这样应该映证了30长最长时间的猜想。而这个时间应该是Memcached本身设置的,经过查找发现Memcached源码memcached.c里边有如下代码。注意第一行 #define REALTIME_MAXDELTA 60*60*24*30 即为30天。

XMemcached是一个新java memcached client。Memcached 是一个高性能的分布式内存对象的key-value缓存系统,用于动态Web应用以减轻数据库负载,
现在也有很多人将它作为内存式数据库在使用,memcached通过它的自定义协议与客户端交互,而XMemcached就是它的一个java客户端实现。

关于XMemcached详细说明,参考XMemcached简介



分享到:
评论

相关推荐

    redis是一个key-value存储系统 和Memcached类似,它支持存储的value类型相对更多

    和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更...

    memcached-2.4.2.jar memcached-2.4.2.jar

    使用memcached 方法 package com.war.common.util; import com.danga.MemCached.*; import java.util.Date; public class MemCached { protected static MemCachedClient mcc; protected static Logger log; ...

    Memcached get 命令

    Memcached get 命令获取存储在 key(键) 中的 value(数据值) ,如果 key 不存在,则返回空。 语法: get 命令的基本语法格式如下: get key 多个 key 使用空格隔开,如下: get key1 key2 key3 参数说明如下: ...

    memcached-1.0.0.tgz

    set value of item with key 'var_key', using on-the-fly compression expire time is 50 seconds */ $memcache_obj->set('var_key', 'some really big variable', MEMCACHE_COMPRESSED, 50); echo $memcache_...

    Redis 是一个高性能的key-value数据库 它 的出现,很大程度补偿了memcached这类keyvalue存储的不足

    Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。

    memcached1

    最近一直在做一个项目的前期设计工作,考虑到后期系统的扩展和性能问题也找了很多解决方法,有一个就是用到了数据库的缓存工具memcached(当然该工具并不仅仅局限于数据库的缓存)。先简单的介绍下什么是memcached。...

    memcached windows稳定版

    -n 最小分配空间,key+value+flags默认是48 -h 显示帮助 Memcache环境测试: 运行下面的php文件,如果有输出This is a test cache!,就表示环境搭建成功。开始领略Memcache的魅力把! $mem = new Memcache();...

    java Memcached Spring整合代码实例

    flag = cachedClient.set(key, value, expire); } catch (Exception e) { // 记录Memcached日志 logger.error("Memcached set方法报错,key值:" + key + "\r\n"); } return flag; }

    redis是一个高性能的key-value数据库

    redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,...

    memcached for win32

    MemCached For Win32 服务器 -p 监听的端口 -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcached服务 -d stop|shutdown 关闭...-n 最小分配空间,key+value+flags默认是48 -h 显示帮助

    memcached32位&64位

    memcached32位&64位支持win8.1 安装: memcached -d install memcached -d start net start "Memcached Server" 卸载: memcached -d stop ...-n 最小分配空间,key+value+flags默认是48 -h 显示帮助

    Memcached 1.2.1.0 For Windows

    安装服务方法(也可直接双击启动): cmd代码: 到memcached根目录 1、安装:memcached.exe –d install 2、启动:memcached.exe -d start ...-n 最小分配空间,key+value+flags默认是48 -h 显示帮助

    Memcached1.4.13 For Windows 32/64

    这是 memcached 在 Windows 系统下的 x86/x64 版本。 命令提示符下运行 安装: memcached -d install memcached -d start net start "Memcached Server" ...-n 最小分配空间,key+value+flags默认是48 -h 显示帮助

    Memcached 1.4.13(Windows 32/64)最新稳定版

    memcached是一套分布式的快取系统,是一套开放源代码软件,以BSD license授权释出。是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载...-n 最小分配空间,key+value+flags默认是48 -h 显示帮助

    memcached安装错误解决文件

    memcached安装错误解决文件

    java连memcached的驱动 spymemcached-2.10.3.jar

    System.out.println("runoob value in cache - " + mcc.get("runoob")); // 添加 fo = mcc.add("runoob", 900, "memcached"); // 打印状态 System.out.println("add status:" + fo.get()); // 添加新key...

    memcached-win-32/64-1.4.4-14

    默认64MB -M 内存耗尽时返回错误,而不是删除项 -c 最大同时连接数,默认是1024 -f 块大小增长因子,默认是1.25 -n 最小分配空间,key+value+flags默认是48 -h 显示帮助 Memcache环境测试: 运行下面的php文件,如果...

    memcached for Win32/x64服务器(袋鼠图标,版本是1.4.13)

    M 内存耗尽时返回错误 而不是删除项 c 最大同时连接数 默认是1024 f 块大小增长因子 默认是1 25 n 最小分配空间 key+value+flags默认是48 h 显示帮助">MemCached For Win32 服务器(高洛峰老师讲课那种) p ...

    memcached-win64-1.4.4-14.rar

    Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。 Memcached简洁而强大。它的简洁设计便于快速开发,减轻开发难度,...

    ecshop caches缓存 memcached 错误最新修正无错.txt

    ecshop caches缓存 memcached 错误最新修正无错.txt ecshop caches缓存 memcached 错误最新修正无错.txt ecshop caches缓存 memcached 错误最新修正无错.txt

Global site tag (gtag.js) - Google Analytics