个人笔记之redisTemplate常用操作

redisTemplate常用操作

不足之处欢迎留言

1、1+5个接口

总接口:RedisOperations<K, V>

源码中redisTemplate实现自总接口,内部以下5个接口分别对应操作5中数据类型

接口1:ValueOperations<K, V>----------------------------字符串
接口2:ListOperations<K, V>-------------------------------List
接口3:SetOperations<K, V> ------------------------------Set
接口4:ZSetOperations<K, V>-----------------------------有序Set
接口5:HashOperations<K, HK, HV>---------------------Hash

2、基本操作

2.1、springboot引入依赖

spring-boot-starter-data-redis

2.2、注入redisTemplate

@Autowired
private RedisTemplate<String, String> redisTemplate;

设置默认过期时长:
public static final long DEFAULT_EXPIRE = 60 * 60 * 24;

不设置过期时间:
public static final long NOT_EXPIRE = -1;

2.3、常用API

redisTemplate.opsForValue().set(“id”, “1”);
redisTemplate.opsForValue().get(“id”);

重命名key,新key不存在时才执行:
Boolean a = redisTemplate.renameIfAbsent(“id”, “newId”);

删除一个key:
redisTemplate.delete(“id”);

删除key集合:
List kList = ids.stream().map(k -> k).collect(Collectors.toList());
redisTemplate.delete(kList);

指定key的过期时间:
Boolean B = redisTemplate.expireAt(“id”, Date);

将key设置为永久有效:
Boolean n = redisTemplate.persist(“id”);

设置key的生命周期:
Boolean b = redisTemplate.expire(“id”, DEFAULT_EXPIRE, TimeUnit);

查询key的生命周期:
Long timeOut = redisTemplate.getExpire(“id”);

2.4、三种清除过期key策略

  1. 被动(惰性):读/写一个已经过期的key时,会触发惰性删除策略,直接删除掉这个过期key
    特点1-----获取某个key时,redis会检查是否过期,若过期了,则删除并返回null。
    特点2-----过期的key在不被执行操作前依然存在并占用内存。
  2. 主动:被动删除策略无法保证冷数据被及时删掉,所以Redis会定期主动淘汰一批已过期的key
    特点1-----serverCron 作为无限循环时间事件(定期执行一次)直到redis服务停止。
    特点2-----redis2.6版每秒执行10次,redis2.8版以后可以设置hz自定义美妙执行次数。
    特点3-----周期性的(特点2)随机测试一波设置了过期时间的key,测试到已过期的则删除。
  3. 触发主动:当前已用内存超过maxmemory限定时,触发主动清理策略
    特点-----当前已用内存超过此值,则触发主动策略。

参考博文:

http://www.cnblogs.com/chenpingzhao/p/5022467.html?utm_source=tuicool&utm_medium=referral

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值