spring|springboot使用redis(从配置到实战)( 二 )


存的过期时间.redisTemplate则是比较常见的我们设置了RedisTemplate因此在代码里面我们也可以通过@Autowired注入RedisTemplate来操作redis.
使用接下来就是如何使用注解啦这一步反而是最简单的.其实只用到了两个注解@Cacheable和@CacheEvict.第一个注解代表从缓存中查询指定的key如果有从缓存中取不再执行方法.如果没有则执
行方法并且将方法的返回值和指定的key关联起来放入到缓存中.而@CacheEvict则是从缓存中清除指定的key对应的数据.使用的代码如下:
```
//有参数
   @Cacheable(value=https://mparticle.uc.cn/"thisredis\" key=\"'users_'+#id\")
   public User findUser(Integer id) {
       User user = new User();
       user.setUsername(\"hlhdidi\");
       user.setPassword(\"123\");
       user.setUid(id.longValue());
       System.out.println(\"log4j2坏啦?\");
       logger.info(\"输入user用户名:{密码:{\"user.getUsername()user.getPassword());
       return user;
   

     @CacheEvict(value=https://mparticle.uc.cn/"thisredis\"   key=\"'users_'+#id\"condition=\"#id!=1\")
     public void delUser(Integer id) {
       // 删除user
          System.out.println(\"user删除\");
     

      //无参数
      @RequestMapping(\"/get\")
   @Cacheable(value=https://mparticle.uc.cn/"thisredis\")
   @ResponseBody
   public List<User> xx(){
       return userMapper.selectAll();
   
   @RequestMapping(\"/get3\")
   @CacheEvict(value=https://mparticle.uc.cn/"thisredis\")
   @ResponseBody
   public String xx3(){
       return \"ok\";
   

```
可以看出我们用@Cacheable的value属性指定具体缓存并通过key将其放入缓存中.这里key非常灵活支持spring的el表达式可以通过方法参数产生可变的key(见findUser方法)也可以通过其指定在什么情况下使用/不使用缓存(见delUser方法).


作者:Python研究者
链接:https://www.cnblogs.com/chenlove/p/15196475.html