memcached的key,value,过期时间的限制

1.   key值最大长度?

memcached的key的最大长度是250个字符,是memcached服务端的限制。

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

我们推荐使用使用较短的key,因为可以节省内存和带宽。key只要不重复就行,如果太大浪费内存。

修改key大小:

修改memcached源文件。在memcached.h中定义key的长度,其代码为:

#define KEY_MAX_LENGTH 250

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

the key must not include control characters or whitespace.

3.对item的过期时间限制?

过期时间最大30

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

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

1MB,因为这是典型slab 的最大值。

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

可以通过-l选项修改:

-l            Override the size of each slab page. Adjusts max item size。(default: 1mb, min: 1k, max: 128m)

要增加的话,启动时添加-I 10m参数就可以。

会有一个警告:

WARNING: Setting item max size above 1MB is not recommended!
 Raising this limit increases the minimum memory requirements
 and will decrease your memory efficiency.

时间: 2024-11-06 14:58:36

memcached的key,value,过期时间的限制的相关文章

redis 下key的过期时间详解 :expire

Redis是一个开源的Key-Value数据缓存,和Memcached类似. Redis多种类型的value,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型). Jedis 是 Redis 官方首选的 Java 客户端开发包. redis通过expire命令来设置key的过期时间. 语法:redis.expire(key, expiration) 1. 在小于2.1.3的redis版本里,只能对key设置一次exp

redis key设置过期时间

最近做的一个项目需要用到redis存储storm计算的结果,使用过程中发现我的redis使用内存空间一直在增大,颇为好奇,因为我都设置了key的过期时间了呀.. 最后一看代码才发现问题.原来我都是在代码中先调用expire()方法调用顺序有问题. expire(key,time) 如果当前redis没有这个key的时候默认是不操作的.哎,写代码千万得严谨啊

Python操作Redis之设置key的过期时间

对于一个已经存在的key,我们可以设置其过期时间,到了那个时间后,当你再去访问时,key就不存在了 有两种方式可以设置过期时间,一种是指定key从当前时间开始算起还能存活多久,时间单位有两个,一个是秒,一个是毫秒 第二种方式是指定key在某一个时间失效,这需要指定明确的年月日时分秒,如果你指定的这个时间已经早于当前时间,那么这个key会立即失效 现在,我们现在redis中添加两个key,分别为ex1 和 ex2 然后分别用两种不同的方式设置其过期时间 # coding=utf-8 ''' Cre

使用SpringDataRedis设置key的过期时间

springdataredis的版本: spring-data-redis-1.8.0.RELEASE 设置过期时间调用的方法如下. 第一个参数为key 第二个参数为值 第三个参数为过期时间 千万注意 要以L结尾.代表为Long类型. 否则过期时间不会生效 redisTemplate.opsForValue().set("mykeys", myvalue, 1L, TimeUnit.DAYS); 第四个参数为时间的单位, 我这里设置为天. 代表为key的有效时间为 1天. 时间单位可以

spring-redis-session 自定义 key 和过期时间

对于分布式应用来说,最开始遇到的问题就是 session 的存储了,解决方案大致有如下几种 使用 spring-session 它可以把 session 存储到你想存储的位置,如 redis,mysql 等 使用 JWTs ,它使用算法来验证 token 的合法性,是否过期,并且 token 无法被伪造,信息也是无法被篡改的 本文内容主要说 spring-session 使用 redis 来存储 session ,实现原理,修改过期时间,自定义 key 等 spring-session 对于内部

redis 一二事 - 设置过期时间,以文件夹形式展示key显示缓存数据

在使用redis时,有时回存在大量数据的时候,而且分类相同,ID相同 可以使用hset来设置,这样有一个大类和一个小分类和一个value组成 但是hset不能设置过期时间 过期时间只能在set上设置 1 // 向redis中添加缓存 2 jedisClient.set(REDIS_ITEM_KEY + ":" + itemId + ":" + ITEM_KEY, JsonUtils.objectToJson(item)); 3 // 设置key的过期时间 4 jed

REDIS 主从架构key过期时间失效问题

活动中用到了Redis来存放用户的奖励票信息,原则上是一天一清,现在设置的是expireAt(零点)但是最近运营反馈有部分用户有异常票,经过加log排查后发现指定在零点过期的key并没有准时过期,从库中在0点23秒的时候还能读到数据,程序中用了简单的exists(key) 判断key是否存在,存在就取值.这么想可能是主库在零点过期了,但是没有及时同步到从库.在网上一看,有用户遇到同样的情况,Redis版本3.2之前的会存在这种情况,然后查看了一下我们的redis版本,发现是3.0 这也就难怪了,

redis 过期时间

memcached 和 redis 的set命令都有expire参数,可以设置key的过期时间.但是redis是一个可以对数据持久化的key-value database,它的key过期策略还是和memcached有所不同的.梳理,整理如下: redis通过expire命令来设置key的过期时间. 语法:redis.expire(key, expiration) 1. 在小于2.1.3的redis版本里,只能对key设置一次expire.redis2.1.3和之后的版本里,可以多次对key使用e

spring-redis SortedSet类型成员的过期时间处理

redis默认是只支持简单key的过期处理的,像SortedSet类型,也是针对整个set的过期处理,不支持对set的某个成员的过期处理: 为了解决这个问题,做法如下: 1.存储key及值信息到redis,并将key存入set里,设置key的过期时间: 这样key可以支持过期处理并在过期后移除key及值:但是set里的key还是存在的: a.在需要判断key过期的处理中,如 boolean containsKey(Object key) ,先在set集合拿到对应的key: 用ttl判断可以是否存

redis文档翻译_key设置过期时间

Available since 1.0.0.    使用开始版本1.01 Time complexity: O(1)  时间复杂度O(1) 出处:http://blog.csdn.net/column/details/redisbanli.html Set a timeout on key. After the timeout has expired, the key will automatically be deleted. A key with an associated timeout