unix时间戳包 有关memcached使用的几个限制
memcached自身有几个比较重要的限制,尤其是其中的过期时间限制,得小心,否则很容易踩到地雷:
1)单个缓存值大小限制:
memcached单个缓存值限制为1M(10000
有关memcached使用的几个限制 memcached自身有几个比较重要的限制,尤其是其中的过期时间限制,得小心,否则很容易踩到地雷: 1)单个缓存值大小限制: memcached单个缓存值限制为1M(1000000bytes),超过这个限制的时候会出如下错误: ValueError: Values may not be more than 1000000 bytes in length; received 2000000 bytes 2)key长度限制: memcache的keys限制为250 bytes,超过这个长度会报错: ValueError: Keys may not be more than 250 bytes in length, received 14670 bytes 3)expire过期时间限制: 过期时间设置有两种方式: 1、可使用 unix 时间戳格式,即距离1970.01.01 00:00:00的时间偏移量(单位为秒) 2、距离当前时间的时间间隔 (单位也为秒) 设为 距离当前时间的时间间隔 时不能大于 2592000(30天),如果时间值大于2592000 ,那么memcached会把时间理解为unix时间戳格式也就是距离1970.01.01的秒数偏移量。0 为永不过期。 这个问题要特别注意,当我们设置的时间间隔大于 2592000 ,例如2592010,写进去的数据会被认为是unix时间戳格式unix时间戳包,数据刚写进去已经过期,相当于导致数据写不进去,而更糟糕的是对于这种情况memcached服务端和客户端驱动都不会抛出exception或者打印任何警告信息,因为对memcached来说这样的时间值也是合理的。 P.S. 该expire的限制某似是从memcached 1.2.6以后才有体现,之前的版本如1.2.1中没有观察到这种现象。 (编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |