StringRedisTemplate操作string类型使用ValueOperations接口,代码描述为针对简单值或者redis术语中的’string’进行操作
我们先来看两个基本的命令

一、SETEX

语法

SETEX key seconds value

语法等同于

SET key value
EXPIRE key seconds

代码执行redis的命令为setex,为设置key的值保存,并在给定秒数之后过期。
代码接口如下:

二、SETRANGE

语法

SETRANGE key offset value

覆盖存储在健处的从指定偏移量开始的一部分字符串,如果偏移量大于键处字符的总长度,则用0字节进行填充,桶bitmap,即redis的string最大存储大小为512MB,最大字节为2^29-1(536870911),所以偏移量的大小不能超过536870911 减去当前字符的字节长度值
命令返回值为设置之后总长度

代码接口如下

虽然命令完全不一样,但是在StringRedisTemplate方法调用时却极其相似,可能第二个方法用的少一些,第一个方法设置值并设置过期时间应该很常见的操作,
比如下面这个代码,

redisTemplate.opsForValue().set(key, "-1", 3600 * 24 * 5)

结合代码上下文和注释可以看到大概意思是为了防止缓存穿透,设置的默认值为-1,过期时间写的3600245应该是想设置过期时间为5天,炸一看没啥问题(别人写的也没仔细看过),后来随着用户量越来越多,redis内存越来越大,大的奇葩,后来排查这些key的存储占大头,设置key的过期时间忘写导致的原因

redisTemplate.opsForValue().set(key, "-1", 3600 * 24 * 5, TimeUnit.SECONDS);

建议像这种过期时间写成下面这样靠谱些,读起来也方便,万一忘记写过期时间单位整个key所占用的大小也是很小的

redisTemplate.opsForValue().set(key, "-1", 1, TimeUnit.DAYS);

参考文档
https://redis.io/commands/setex/
https://redis.io/commands/setrange/

原文地址:http://www.cnblogs.com/LiuFqiang/p/16798609.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性