springboot2.x简单整合redis

本文介绍 Spring Boot 2.x 简单整合 Redis 的方法。先添加 Maven 依赖,也可创建项目时选 Redis 模板;用 Docker 安装 Redis 并配置地址。测试使用时,介绍了 RedisTemplate 和 StringRedisTemplate 操作对象的方法,还提及序列化策略及数据格式设置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
    }

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值