注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

和申的个人主页

专注于java开发,1985wanggang

 
 
 

日志

 
 

【引用】memcache 的限制  

2011-01-21 16:39:46|  分类: memcache |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
本文转载自阿飘《memcache 的限制》
和大家分享这篇日志,我的看法是:

 
原文地址:memcache 的限制    原文作者:阿飘
memcache单个缓存值限制为1M(1000000bytes),超过这个限制的时候会出如下错误。

ValueError: Values may not be more than 1000000 bytes in length; received 2000000 bytes

memcache的keys限制为250 bytes,超过这个长度会报错。

ValueError: Keys may not be more than 250 bytes in length, received 14670 bytes

memcache的时间设置没限制,但服务器会自动清理缓存,官方好像说过最长为1个月时间(3600*24*30)。

2.6.Memcache::add
2.5.1.说明
bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]]
) 添加一个要缓存的数据如果作为这个缓存的数据的键在服务器上还不存在的情况下,
2.5.2.参数
key 缓存数据的键 其长度不能超过250个字符
var 值,整型将直接存储,其他类型将被序列化存储 ,其值最大为1M

flag 是否使用 zlib 压缩
,当flag=MEMCACHE_COMPRESSED的时侯,数据很小的时候不会采用zlib压缩,只有数据达到一定大小才对数据进行zlib压缩。(没有具体的测试数据进行压缩的最小值是多少)
expire 过期时间,0 为永不过期,可使用 unix 时间戳格式或距离当前时间的秒数,设为秒数时不能大于 2592000(30
天)
2.5.3.返回值
成功返回 TRUE,失败返回 FALSE,如果这个键已经存在,其他方面memcache:;add()的行为与memcache::set相似
2.5.4.范例
<?
$memcache_obj = memcache_connect("localhost", 11211);
/* procedural API */
memcache_add($memcache_obj, ‘var_key‘, ‘test variable‘, FALSE, 30);
/* OO API */
$memcache_obj-add(‘var_key‘, ‘test variable‘, FALSE, 30);
?>

2.6.Memcache::replace
2.6.1.说明
bool Memcache::replace ( string $key , mixed $var [, int $flag [, int $expire
]] )
替换一个指定 已存在key 的的缓存变量内容
2.6.2.参数
key 缓存数据的键, 其长度不能超过250个字符
var 值,整型将直接存储,其他类型将被序列化存储,其值最大为1M

flag 是否使用 zlib 压缩
,当flag=MEMCACHE_COMPRESSED的时侯,数据很小的时候不会采用zlib压缩,只有数据达到一定大小才对数据进行zlib压缩。(没有具体的测试数据进行压缩的最小值是多少)
expire 过期时间,0 为永不过期,可使用 unix 时间戳格式或距离当前时间的秒数,设为秒数时不能大于 2592000(30
天)
2.6.3.返回值
成功返回 TRUE,失败返回 FALSE。
2.6.4.范例
<?php
$memcache_obj = memcache_connect(‘memcache_host‘, 11211);
/* procedural API */
memcache_replace($memcache_obj, "test_key", "some variable", FALSE, 30);
/* OO API */
$memcache_obj-replace("test_key", "some variable", FALSE, 30);
?>

2.7.Memcache::set
2.7.1.说明
bool Memcache::set ( string $key , mixed $var [, int $flag [, int $expire ]]
) 设置一个指定 key 的缓存变量内容
2.7.2.参数
key 缓存数据的键, 其长度不能超过250个字符
var 值,整型将直接存储,其他类型将被序列化存储,其值最大为1M

flag 是否使用 zlib 压缩
,当flag=MEMCACHE_COMPRESSED的时侯,数据很小的时候不会采用zlib压缩,只有数据达到一定大小才对数据进行zlib压缩。(没有具体的测试数据进行压缩的最小值是多少)
expire 过期时间,0 为永不过期,可使用 unix 时间戳格式或距离当前时间的秒数,设为秒数时不能大于 2592000(30
天)
2.7.3.返回值
成功返回 TRUE,失败返回 FALSE。
2.7.4.范例
<?php
/* procedural API */
/* connect to memcached server */
$memcache_obj = memcache_connect(‘memcache_host‘, 11211);
/*
set value of item with key ‘var_key‘
using 0 as flag value, compression is not used
expire time is 30 second
*/
memcache_set($memcache_obj, ‘var_key‘, ‘some variable‘, 0, 30);
echo memcache_get($memcache_obj, ‘var_key‘);

/* OO API */
$memcache_obj = new Memcache;
/* connect to memcached server */
$memcache_obj-connect(‘memcache_host‘, 11211);
/*
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_obj-get(‘var_key‘);
?>

2.8.Memcache::get
2.8.1.说明
string Memcache::get ( string $key [, int $flags ] )
array Memcache::get ( array $keys [, array $flags ] )
获取某个 key 的变量缓存值
2.8.2.参数
key 缓存值的键

flags 如果是传址某个变量,获取缓存值被set或是add的flag结果将被存于该变量
2.8.3.返回值
返回缓存的指定 key 的变量内容或者是在失败或该变量的值不存在时返回 FALSE
如果传出的key的数组中的key都不存在,返回的结果是一个空数组,反之则返回key与缓存值相关联的关联数组
2.8.4.范例

/* procedural API */
$memcache_obj = memcache_connect(‘memcache_host‘, 11211);
$var = memcache_get($memcache_obj, ‘some_key‘);
/* OO API */
$memcache_obj = new Memcache;
$memcache_obj-connect(‘memcache_host‘, 11211);
$var = $memcache_obj-get(‘some_key‘);
/*
You also can use array of keys as a parameter.
If such item wasn‘t found at the server, the result
array simply will not include such key.
*/
/* procedural API */
$memcache_obj = memcache_connect(‘memcache_host‘, 11211);
$var = memcache_get($memcache_obj, Array(‘some_key‘, ‘another_key‘));
//如果some_key,another_key不存在 $var = array();
//如果some_key,another_key存在     $var = array(‘some_key‘=‘缓存值‘, ‘another_key‘=‘缓存值‘);
/* OO API */
$memcache_obj = new Memcache;
$memcache_obj-connect(‘memcache_host‘, 11211);
$var = $memcache_obj-get(Array(‘some_key‘, ‘second_key‘));
?>


2.9.Memcache::delete
2.9.1.说明
bool Memcache::delete ( string $key [, int $timeout ] )
删除某一个变量的缓存
2.9.2.参数
key     缓存的键 键值不能为null和‘’,当它等于前面两个值的时候php会有警告错误。

timeout 删除这项的时间,如果它等于0,这项将被立刻删除反之如果它等于30秒,那么这项被删除在30秒内
2.9.3.返回值
成功返回 TRUE,失败返回 FALSE。
2.9.4.范例
<?php
/* procedural API */
$memcache_obj = memcache_connect(‘memcache_host‘, 11211);
/* after 10 seconds item will be deleted by the server */
memcache_delete($memcache_obj, ‘key_to_delete‘, 10);
/* OO API */
$memcache_obj = new Memcache;
$memcache_obj-connect(‘memcache_host‘, 11211);
$memcache_obj-delete(‘key_to_delete‘, 10);
?>org.quartz.impl.jdbcjobstore.LockException: Failure obtaining db row lock: - 和申 - 和申的个人主页

  评论这张
 
阅读(900)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016