欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot2.x简单整合redis

程序员文章站 2022-07-07 11:22:14
...

springboot2.x简单整合redis

1.添加maven依赖

也可以在创建springboot项目时,选择redis模板

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

2.yml配置redis地址

spring:
  redis: 
   host: ***.***.***.***
   post:    #默认是6379
  

安装redis ,这里我们采用 docker安装redis(很方便)。
使用 $docker pull redis 命令拉取镜像,
$docker images :查看镜像id
运行redis: $ docker run -d -p 6379:6379 --name myredis 镜像id

3.测试使用

springboot为什么提供了两个类来操作redis,一个是RedisTemplate,和StringRedisTemplate(继承自RedisTemplate),

第一个是主要用来操作对象的饿,第二个主要是用来操作字符串。

代码:

@Autowired
    private StringRedisTemplate stringRedisTemplate;

 @Test
     public void testRedis(){

        stringRedisTemplate.opsForValue().append("624","qk" );
     }

这样就可以把这个k-v键值对存进redis里面去了。更多的redis的命令可以在http://redisdoc.com/此网站上查找。

3.1使用RedisTemplate 来操作对象

  @Test
     public void testRedis(){

        stringRedisTemplate.opsForValue().append("624","qk" );
         Student student = studentdao.selectById(1);
         redisTemplate.opsForValue().set("student",student );
     }

通过测试,可以发现数据确实存进了redis,但是存的确是一些英文和数字等组成的数据。

原来RedisTemplate默认采用的是JDK的序列化策略,StringRedisTemplate默认采用的是String的序列化策略。

当然我们想要设置我们的数据格式,这里有两个方法,一个就是我们自定义RedisTemplate 模板,另外一个方法就是我们在 ”存“之前和”取“之后,对数据进行处理(这里我们采用json的数据格式)。

3.2 使用stringredistemplate操作对象

这里我们采用阿里的fastjson 来对json解析和生成

引入依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>****</version>
</dependency>

测试代码:

    @Test
    public void testredis() {
        Student student = studentdao.selectById(1);
        // 将要放入缓存的对象先转换为JSON字符串
        String jsonStr = com.alibaba.fastjson.JSON.toJSONString(student);
        stringRedisTemplate.opsForValue().set("user3", jsonStr);
        String getstr = stringRedisTemplate.opsForValue().get("user3");
        //将json字符串转化成对象
        Student getStudent = JSON.parseObject(getstr,Student.class );
        System.out.println(getStudent);
    }

这里仅仅是做一个简单使用,网上还有许多好的封装方法,大家可以搜搜,还有自定义模板也是一种不错的方法。

相关标签: springboot redis