0
点赞
收藏
分享

微信扫一扫

Redis做缓存和SpringCache缓存


记录一下Redis做缓存和SpringCache缓存的区别
1.Redis做缓存的话,相当于是一个第三方缓存,所以项目重启之后缓存数据还是存在的
2.SpringCache作缓存的话是建立在JVM上的,所以项目启动之后缓存是自动消失的。

业务:在邮件验证码、短信验证码情况下需要设置过期时间。
如何使用:用Redis和SpringCache两种使用方法。
过期时间:如果需要设置过期时间的话,需要使用到redis。如果不需要设置过期时间,则Redis和SpringCache都可以。

SpringCache 使用方法:

1.在启动类使用@EnableCaching

@SpringBootApplication
@EnableCaching //启动SpringCache缓存
public class GatheringApplication {}

2.是需要添加缓存的时候使用@Cacheable

//存入缓存
@Cacheable(value = "gathering",key = "#id")
public Gathering findById(String id){}3.在需要删除缓存的时候使用@CacheEvict
//删除
@CacheEvict(value = "gathering",key = "#gathering.id")
public void update(Gathering gathering){}

下面是SpringDataRedis的部分使用方法:

/**
* 参数1:key 参数2:value 参数3:时间 参数4:时间单位
*/
redisTemplate.opsForValue().set(REDIS_ARTICLE_KEY+"_"+id,article,10, TimeUnit.SECONDS);

stringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS);//向redis里存入数据和设置缓存时间

stringRedisTemplate.opsForValue().get("test")//根据key获取缓存中的val
stringRedisTemplate.boundValueOps("test").increment(-1);//val做-1操作
stringRedisTemplate.boundValueOps("test").increment(1);//val +1
stringRedisTemplate.getExpire("test")//根据key获取过期时间
stringRedisTemplate.getExpire("test",TimeUnit.SECONDS)//根据key获取过期时间并换算成指定单位
stringRedisTemplate.delete("test");//根据key删除缓存
stringRedisTemplate.hasKey("546545");//检查key是否存在,返回boolean值
stringRedisTemplate.expire("red_123",1000 , TimeUnit.MILLISECONDS);//设置过期时间
stringRedisTemplate.opsForSet().add("red_123", "1","2","3");//向指定key中存放set集合
stringRedisTemplate.opsForSet().isMember("red_123", "1")//根据key查看集合中是否存在指定数据
stringRedisTemplate.opsForSet().members("red_123");//根据key获取set集合

 

举报

相关推荐

0 条评论