1.在redis中可以通过使用expire命令设置键的过期时间:
redis>set name kk
redis>expire name 60 //设置过期时间为60秒
redis>ttl name //查看当前该键的过期时间
可以通过expire来限制用户访问频率问题(1分钟限制访问100次),如下伪代码:
isExists= exists nameTime //判断是否存在该键
if isExists is 1 //如果存在
times= incr nameTime //incr给该键+1
if times>100 //是否>100
print 访问频率超过限制,请稍后再试
exit
else
mult //开启事务
incr nameTime //创建并+1, 返回结果为1
expire nameTime 60 //设置过期时间60秒
exec //关闭事务并执行所有操作
2.redis的内存配置
redis作为缓存时,可设置内存大小, 修改配置文件的maxmemory参数,当内存使用超过了这个限制redis就会依据
maxmemory-policy参数指定的策略来删除不需要的键直到redis占用内存小于指定内存.
lru(least recently used)算法是删除"最近最少使用"的键
volatile-lru //使用lru算法删除一个键(只对设置过期时间的键)
allkeys-lru //使用lru算法删除一个键(对所有键)
volatile-random //随机删除一个键(只对设置过期时间的键)
allkeys-random //随机删除一个键(对所有键)
volatile-ttl //删除过期时间最近的一个键(即将过期的键)
noeviction //内存已满,也不删除键,添加数据直接返回错误
如设置为allkeys-lru时,一旦内存超出,redis会不断的删除最近最少使用的键,直到占用的内存小于限制值.
参考书: redis入门指南-李子骅