zoukankan      html  css  js  c++  java
  • 【飞天奔月出品】memcached四大注意事项(key长度,空格限制,最大item)

    1.   key值最大长度?

    memcached的key的最大长度是250个字符

    注意250是memcached服务器端内部的限制(可以修改)

    如果您使用的客户端支持"key的前缀"或类似特性,那么key(前缀+原始key)的最大长度是可以超过250个字符的。

    我们推荐使用使用较短的key,因为可以节省内存和带宽。

    key只要不重复就行,如果太大浪费内存。

    2.key 不能有空格和控制字符

    the key must not include control characters or whitespace.

    1. item的过期时间限制?

    过期时间最大30

    如果不注意这个细节,过期时间设置大于了30天,值会设置不进缓存

    1. 最大能存储多大的单个item?

    1MB

    如果你的数据大于1MB,可以考虑在客户端压缩或拆分到多个key中。 

    代码支持:

    如果你使用spy

    net.spy.memcached.util.StringUtils.validateKey(String)

    这个方法 用来验证 key

    其中代码:

    Java代码  
    1. public static void validateKey(String key) {  
    2.   byte[] keyBytes = KeyUtil.getKeyBytes(key);  
    3.   if (keyBytes.length > MemcachedClientIF.MAX_KEY_LENGTH) {  
    4.     throw new IllegalArgumentException("Key is too long (maxlen = "  
    5.         + MemcachedClientIF.MAX_KEY_LENGTH + ")");  
    6.   }  
    7.   if (keyBytes.length == 0) {  
    8.     throw new IllegalArgumentException(  
    9.         "Key must contain at least one character.");  
    10.   }  
    11.   // Validate the key  
    12.   for (byte b : keyBytes) {  
    13.     if (b == ' ' || b == ' ' || b == ' ' || b == 0) {  
    14.       throw new IllegalArgumentException(  
    15.           "Key contains invalid characters:  ``" + key + "''");  
    16.     }  
    17.   }  
    18. }  

    可以看到,最大长度 250,不允许长度为0的key,

    如果其中有空格 这样的控制符号 也是不允许的

  • 相关阅读:
    Ubuntu ctrl+alt会导致窗口还原的问题
    Ubuntu设置显示桌面快捷键
    ubuntu鼠标和触摸板的禁用
    Codeforces Round #271 (Div. 2) F题 Ant colony(线段树)
    友盟社会化分享
    ZOJ 3890 Wumpus
    九种迹象表明你该用Linux了
    Java集合源代码剖析(二)【HashMap、Hashtable】
    01_GIT基础、安装
    Launcher知识的demo,手机管家小伙家与悬浮窗
  • 原文地址:https://www.cnblogs.com/wnlja/p/4681064.html
Copyright © 2011-2022 走看看