memcached如果在add后立即get,有时候获取不到 memcached如果在add后立即get,有时候获取不到,是不是因为add操作是异步的啊?在一个页面内的代码:$mc->add($key,'asdqew');echo($mc->get($key));即add后立马get有时候能echo出来,有时候就没有数据,这是怎么回事啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 即使在add和get间插入一个代码 sleep(1)也有时候获取不到数据,很是奇怪,难道是memcached不稳定? 存储时间过了,add()设个时间 Memcache::add — 增加一个条目到缓存服务器说明bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] )Memcache::add()方法在缓存服务器之前不存在key时, 以key作为key存储一个变量var到缓存服务器。 同样可以使用函数memcache_add()。 参数key 将要分配给变量的key。 var 将要被存储的变量。字符串和整型被以原文存储,其他类型序列化后存储。 flag 使用MEMCACHE_COMPRESSED标记对数据进行压缩(使用zlib)。 expire 当前写入缓存的数据的失效时间。如果此值设置为0表明此数据永不过期。你可以设置一个UNIX时间戳或 以秒为单位的整数(从当前算起的时间差)来说明此数据的过期时间,但是在后一种设置方式中,不能超过 2592000秒(30天)。 返回值成功时返回 TRUE, 或者在失败时返回 FALSE. 如果这个key已经存在返回FALSE。 Memcache::add()方法的其他行为类似 Memcache::set()。 建议使用set方法强制写入Memcache::set(PECL memcache >= 0.2.0)Memcache::set — Store data at the server说明bool Memcache::set ( string $key , mixed $var [, int $flag [, int $expire ]] )Memcache::set()向key存储一个元素值为 var。参数expire是以秒为单位的失效时间, 如果设置为0表明该元素永不过期(但是它可能会因为为了给其他项分配空间而被删除)。如果你希望存储的元素 经过压缩(使用zlib),你可以设置flag的值为MEMCACHE_COMPRESSED。 Note: 谨记:资源类型变量(比如文件或连接)不能被存储在缓存中,因为它们在序列化状态不能被完整描述。 同样你也可以使用函数memcache_set()。 参数key 要设置值的key。 var 要存储的值,字符串和数值直接存储,其他类型序列化后存储。 flag 使用MEMCACHE_COMPRESSED指定对值进行压缩(使用zlib)。 expire 当前写入缓存的数据的失效时间。如果此值设置为0表明此数据永不过期。你可以设置一个UNIX时间戳或 以秒为单位的整数(从当前算起的时间差)来说明此数据的过期时间,但是在后一种设置方式中,不能超过 2592000秒(30天)。 返回值成功时返回 TRUE, 或者在失败时返回 FALSE. 最后要注意设置好缓存过期时间 会不会是写入的时候失败了,你把add的返回值dump出来看一下 对memcached服务器只有你这个程序处理吗? 有没有其他客户端干扰? 这个问题我也遇到过,单步调试可以get到数据,但是直接运行,就get不到数据 php的ab压力测试 如何测试post请求和get请求? discuz中关于去掉外部链接功能后flash视频显示的问题 PHP输出XML问题 用CAKEPHP 框架开发的开源程序有哪些? jquery.getJson() session不一致问题 大家好,用xampp安装的php环境安装项目后局域网访问不了 des的求一个加密算法!!!! Yii 关联查询结果转化为json后数据丢失 mysql 各种语句 怎样获取苹果app store排行榜的数据 discuz php版数据库不停的连接 有谁知道php RSA加解密过程的来看一下
bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] )
Memcache::add()方法在缓存服务器之前不存在key时, 以key作为key存储一个变量var到缓存服务器。 同样可以使用函数memcache_add()。 参数key
将要分配给变量的key。 var
将要被存储的变量。字符串和整型被以原文存储,其他类型序列化后存储。 flag
使用MEMCACHE_COMPRESSED标记对数据进行压缩(使用zlib)。 expire
当前写入缓存的数据的失效时间。如果此值设置为0表明此数据永不过期。你可以设置一个UNIX时间戳或 以秒为单位的整数(从当前算起的时间差)来说明此数据的过期时间,但是在后一种设置方式中,不能超过 2592000秒(30天)。
返回值
成功时返回 TRUE, 或者在失败时返回 FALSE. 如果这个key已经存在返回FALSE。 Memcache::add()方法的其他行为类似 Memcache::set()。
建议使用set方法强制写入
Memcache::set
(PECL memcache >= 0.2.0)Memcache::set — Store data at the server说明
bool Memcache::set ( string $key , mixed $var [, int $flag [, int $expire ]] )
Memcache::set()向key存储一个元素值为 var。参数expire是以秒为单位的失效时间, 如果设置为0表明该元素永不过期(但是它可能会因为为了给其他项分配空间而被删除)。如果你希望存储的元素 经过压缩(使用zlib),你可以设置flag的值为MEMCACHE_COMPRESSED。 Note: 谨记:资源类型变量(比如文件或连接)不能被存储在缓存中,因为它们在序列化状态不能被完整描述。
同样你也可以使用函数memcache_set()。 参数key
要设置值的key。 var
要存储的值,字符串和数值直接存储,其他类型序列化后存储。 flag
使用MEMCACHE_COMPRESSED指定对值进行压缩(使用zlib)。 expire
当前写入缓存的数据的失效时间。如果此值设置为0表明此数据永不过期。你可以设置一个UNIX时间戳或 以秒为单位的整数(从当前算起的时间差)来说明此数据的过期时间,但是在后一种设置方式中,不能超过 2592000秒(30天)。
返回值
成功时返回 TRUE, 或者在失败时返回 FALSE. 最后要注意设置好缓存过期时间