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,

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

  • 相关阅读:
    为啥我百度定位wifi可以定位准确,但用数据流量就给我定位到非洲西海岸
    利用BottomNavigationBar实现不同的fragment之间的转换
    VS2010中连接sql 2005连接问题microsoft.sqlserver.management.sdk.sfc
    zuul路由网关介绍及使用
    Hystrix断路器概述及使用
    Ribbon负载均衡概述及使用
    Eureka服务注册与发现 介绍及使用
    微服务介绍及springcloud入门概述
    springboot整合springdatajpa步骤及使用
    springboot整合shiro步骤
  • 原文地址:https://www.cnblogs.com/wnlja/p/4681064.html
Copyright © 2011-2022 走看看