Springboot集成Redis

本文介绍了如何在Springboot项目中集成Redis,包括添加pom依赖,配置Redis连接信息,使用RedisTemplate进行数据操作,并提供了测试类的编写方法,同时讨论了解决乱码问题的方案。
摘要由CSDN通过智能技术生成

引入pom依赖
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <version>2.2.6.RELEASE</version>
        </dependency>

配置redis

端口和ip地址,默认的是6379和127.0.0.1,一般不需要配置,如果远程操作则把ip地址修改一下即可

spring.redis.host=127.0.0.1
spring.redis.port=6379

在这里插入图片描述

在这里插入图片描述

引入RedisTemplate模板对redis操作
 @Autowired
    private RedisTemplate redisTemplate;

在这里插入图片描述
可以发现这里有redis不同对应类型的操作方法
在开发中我们一般都会封装一个工具类对redis操作,简化了重复性的代码

编写一个测试类
public void redis(){
        //redis数据库添加一个key为myObject和value等于1111的String类型
        redisTemplate.opsForValue().set("myObject",1111);
        System.out.println(redisTemplate.opsForValue().get("myObject"));
    }

在这里插入图片描述
在这里插入图片描述

乱码分析及解决

在这里插入图片描述
在这里插入图片描述

此时就需要编写自己的RedisTemplete

在这里插入图片描述

package com.csde.demo;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration
public class RedisConfig {
    @Bean
//    @SuppressWarnings("all")
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
            // 我们为了自己开发方便,一般直接使用 <String, Object>
            RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
            template.setConnectionFactory(factory);
                 // Json序列化配置
            Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
            ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
            jackson2JsonRedisSerializer.setObjectMapper(om);
                    //String 的序列化
            StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
                // key采用String的序列化方式
            template.setKeySerializer(stringRedisSerializer);
                // value采用String的序列化方式
             template.setValueSerializer(jackson2JsonRedisSerializer);
                // hash的key也采用String的序列化方式
            template.setHashKeySerializer(stringRedisSerializer);
            // hash的value序列化方式采用jackson
            template.setHashValueSerializer(jackson2JsonRedisSerializer); template.afterPropertiesSet();
            return template;
    }
}

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值