Redis( 基础篇 ==> SpringDataRedis的使用

本章导学:

  • SpringData与SpringDataRedis介绍
  • RedisTemplate工具类的API使用
  • SpringBoot整合SpringDataRedis

一、什么是SpringDataRedis

SpringData是Spring中数据操作的模块,包含了对各种数据库的集成。 

其中对Redis的集成模块,就是SpringDataRedis

SpringDataRedis的特点如下:

提供了对不同Redis客户端的整合(Lettuce和Jedis(上一章提到的))

  • 提供了RedisTemplate统一API来操作Redis
  • 支持Redis的发布订阅模型
  • 支持Redis哨兵和Redis集群
  • 支持基于Lettuce的响应式变成
  • 支持基于JDK、JSON、字符串,Spring对象的序列化和反序列化
  • 支持基于Redis的JDKCollection实现

 

二、RedisTemplate工具类的API使用  

在SpringDataRedis中提供了RedisTemplate工具类,里面封装了对供桌Redis的操作,并且将不同的数据类型的操作API封装到了不同的类型中

API返回类型说明
redisTemplate.opsForValue()ValueOperations

操作String类型数据

redisTemplate.opsForHash()HashOperations操作Hash类型数据
redisTemplate.opsForList()ListOperations操作List类型数据
redisTemplate.opsForSet()SetOperations操作Set类型数据
redisTemplate.opsForZSet()ZSetOperations操作SortedSet类型数据
redisTemplate通用命令

三、SpringBoot整合SpringDataRedis

SpringBoot已经提供了对SpringDataRedis的支持,我们使用起来非常简单

分为以下几个步骤

  1. 引入依赖
  2. 配置文件
  3. 注入RedisTemplate
  4. 编写测试

3.1、引入依赖

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

        <!-- 连接池依赖-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>

3.2、配置文件

我们在applicaiton.yml里对Redis做个简单的配置

spring:
  redis:
    host: 192.168.75.128
    port: 6379
    password: 124856
    #选择数据库
    database: 3
    #连接池
    lettuce:
      pool:
        #最大连接
        max-active: 8
        #最大空闲连接
        max-idle: 8
        #最小空闲连接
        min-idle: 0
        #等待时间
        max-wait: 100

3.3、注入RedisTemplat

我们创建个测试类,注入它

3.4、编写测试用例

package com.brrbaii;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;

@SpringBootTest
public class RedisDemoTest {

    @Autowired
    private RedisTemplate redisTemplate;

    @Test
    public void testString(){
        redisTemplate.opsForValue().set("name","brrbaii");
        Object name = redisTemplate.opsForValue().get("name");
        System.out.println(name);
    }


}

查看测试结果

 

留坑

这里留个坑,我们去Linux系统下看看我们刚刚插入的数据

发现我们的key并不是在IDEA里写的name,而是一串字符后跟着一个name

我们去可视化界面看看插入的数据是什么

我们发现在我们的数据前,都跟着一串\xAC\xED\x00\x05t\x00\x07

至于为什么会这样,以及如何解决这种情况,我们下一篇中讲

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白日日白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值