zoukankan      html  css  js  c++  java
  • memcached使用的几个限制 C++ 技术中心 C++博客

    memcached使用的几个限制 -    C++ 技术中心 - C++博客

    有关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时间戳格式,数据刚写进去已经过期,相当于导致数据写不进去,而更糟糕的是对于这种情况memcached服务端和客户端驱动都不会抛出exception或者打印任何警告信息,因为对memcached来说这样的时间值也是合理的。
    P.S. 该expire的限制某似是从memcached 1.2.6以后才有体现,之前的版本如1.2.1中没有观察到这种现象。
  • 相关阅读:
    Java生产者与消费者(下)
    Java生产者与消费者(上)
    Java中的继承和接口
    syslog(),closelog()与openlog()--日志操作函数
    Nagle算法
    TCP_NODELAY详解
    Linux "零拷贝" sendfile函数中文说明及实际操作分析
    pdflush的工作原理
    proc/sys/net/ipv4/下各项的意义
    求最低价格
  • 原文地址:https://www.cnblogs.com/lexus/p/2875849.html
Copyright © 2011-2022 走看看