zoukankan      html  css  js  c++  java
  • springboot中,使用redisTemplate操作redis

    知识点:

         springboot中整合redis

         springboot中redisTemplate的使用

         redis存数据时,key出现乱码问题

    springboot中整合redis

      (1)pom.xml文件中引入依赖

    <!--加入redis依赖-->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>

    (2)application.yml文件中加入redis相关配置


    host:redis 服务器地址
    port:6379 端口
    database:数据库索引(默认为0)
    password:服务器连接密码(默认为空)
    timeout:连接超时时间(毫秒)

    springboot中redisTemplate的使用

    (1)redis操作的工具类RedisUtil

    (2)使用redisTemplate存取数据

       service层(hash值):

           //存取redis值
          public Map<String, Object> testRedisTemplate(Integer id){    //id=1852
                   Map<String, Object> user=new HashMap<>();
                   Map<String, Object> userResult=redisUtil.getHash("USER_BY_ID"+id);

                   //如果redis中,没有存放值,存入redis
                   if(userResult.size()==0){
                          user = userMapper.findUserById(id);
                          redisUtil.setHash("USER_BY_ID"+id, user,120L);   //120L是有效时间120秒,120秒以后redis中的数据自动删除
                   }else{

                         //如果redis中,有值,直接取redis中的值
                          user=userResult;
                    }
                          return user;
             }

      redis中存放的数据:

    redis存数据时,key的乱码问题

    上面redis中存放的名字和值都乱码了,该如何解决呢?

    我们可以在RedisUtil工具类中加

    //解决乱码问题
    @Autowired(required = false)
    public void setRedisTemplate(RedisTemplate redisTemplate) {
    RedisSerializer stringSerializer = new StringRedisSerializer();
    redisTemplate.setKeySerializer(stringSerializer);
    redisTemplate.setValueSerializer(stringSerializer);
    redisTemplate.setHashKeySerializer(stringSerializer);
    redisTemplate.setHashValueSerializer(stringSerializer);
    this.redisTemplate = redisTemplate;
    }
    改过之后,redis存放的结果


    源码:https://github.com/shuaishuaihand/cacheandredis.git

  • 相关阅读:
    JavaScript DOM API初步(整理)
    MySQL与Oracle之间互相拷贝数据的Java程序
    MySQL与Oracle的区别之我见
    js原生:封装document.getElementByClassName()函数
    js和jquery获取父级元素、子级元素、兄弟元素的方法
    封装bt轮播图淡入淡出效果样式
    Bootstrap每天必学之导航条
    全面解析Bootstrap图片轮播效果
    JS如何获取页面可见区域高度
    怎样才能成为优秀的前端工程师
  • 原文地址:https://www.cnblogs.com/shuaifing/p/11213253.html
Copyright © 2011-2022 走看看