Redis缓存处理

  • A+
所属分类:linux技术
摘要

1.Redis环境搭建   以docker的形式搭建Redis 服务    docker run ‐di ‐‐name=tensquare_redis ‐p 6379:6379 redis

1.Redis环境搭建

  以docker的形式搭建Redis 服务

    docker run ‐di ‐‐name=tensquare_redis ‐p 6379:6379 redis

 

2.SpringDataRedis

  Spring-data-redis是spring大家族的一部分,提供了在srping应用中通过简单的配置访问redis服务,对reids底层开发包(Jedis, JRedis, and RJC)进行了高度封装,RedisTemplate提供了redis各种操作。

 

3.实现项目的缓存处理

  3.1 查询文章操作缓存

    (1)在项目 的pom.xml引入依赖

        <dependency>

          <groupId>org.springframework.boot</groupId>
          <artifactId>spring‐boot‐starter‐data‐redis</artifactId>
        </dependency>
    (2)修改application.yml ,在spring节点下添加配置
        redis:

          host: 192.168.184.134
    (3)修改Service 引入RedisTemplate,并修改findById方法
        @Autowired

        private RedisTemplate redisTemplate;
        /**
        * 根据ID查询实体
        * @param id
        * @return
        */
        public Label findById(String id) {
          //从缓存中提取
          Label label=(Label)redisTemplate.opsForValue().get("Label_"+id);
          // 如果缓存没有则到数据库查询并放入缓存
          if(label==null) {
          label= labelDao.findById(id).get();
          redisTemplate.opsForValue().set("label_" + id, label);
          }
          return label;
        }
   3.2 修改或删除后清除缓存
      /**

      * 修改
      * @param label
      */
      public void update(Label label) {
        redisTemplate.delete( "label_" + label.getId() );//删除缓存
        labelDao.save(label);
      }
      /**
      * 删除
      * @param id
      */
      public void deleteById(String id) {
        redisTemplate.delete( "label_" + id );//删除缓存
        labelDao.deleteById(id);
      }

   3.3 缓存过期处理

      修改findById方法 ,设置1天的过期时间
        redisTemplate.opsForValue().set("label_" + id, label,1,TimeUnit.DAYS);
      为了方便测试,我们可以把过期时间改为10秒,然后观察控制台输出
        redisTemplate.opsForValue().set("label_" + id, label,10,TimeUnit.SECONDS);