springboot中使用redis详解

本文详细介绍了Redis作为高性能键值数据库的特点,以及在SpringBoot项目中的应用。讲解了SpringBoot配置Redis依赖,如何在应用中使用RedisTemplate和StringRedisTemplate,并通过实例展示了不同序列化方式对数据的影响。特别指出,采用JdkSerializationRedisSerializer序列化时,model需实现Serializable接口,而Jackson2JsonRedisSerializer则不需要。
摘要由CSDN通过智能技术生成
一、redis简介

redis是一款高性能key-value(键值对)内存型数据库,是非关系型数据库的一种,它采用单线程的架构方式,避免了多线程存在的锁处理造成的资源耗费,读取速度非常快,非常适合变化不是太大但数据量很大的数据的存储和读取。
redis中的数据类型:String、list、hash、zset、set五种。

二、使用场景

项目中涉及到数据查询的操作,先从redis中查询,若redis中不存在则从数据库中查询,再更新到redis中,以后再次执行相同的查询则直接从redis中查询,提高了效率。

三、springboot中使用redis
  1. pom.xml中配置依赖
<!--   配置redis     -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

2、application.properties中配置redis相关的参数

##配置redis
spring.redis.database=0
spring.redis.host=119.3.250.240
spring.redis.password=888888
spring.redis.port=6379

3、使用redis
redis中有两个模板类:RedisTemplate和StringRedisTemplate。通过模板类可以对redis数据库进行增删改查的操作,redis数据库中存放数据是要对key、value进行序列化的,RedisTemplate模板类默认采用JdkSerializationRedisSerializer序列化类对key和value进行序列化;而StringRedisTemplate默认采用StringRedisSerializer序列化类对key和value进行序列化。
上面说了这么多理论有啥用?对项目有什么影响?如何在项目中使用呢?别急,咱们下面就结合代码进行说明。

1)如果采用StringRedisTemplate模板,首先看它的下源码:

/**
从源码中可以看到,StringRedisTemplate模板类默认采用StringRedisSerializer序列化类对
key和value进行序列化,通过该模板类传参时,key和value要求是String类型。
*/
public class StringRedisTemplate extends RedisTemplate<String, String> {
   
    public StringRedisTemplate() {
   
        this.setKeySerializer(RedisSerializer.string());
        this.setValueSerializer(RedisSerializer.string());
        this.setHashKeySerializer(RedisSerializer.string());
        this.setHashValueSerializer(RedisSerializer.string());
    }

    public StringRedisTemplate(RedisConnectionFactory connectionFactory) {
   
        this();
        this.setConnectionFactory(connectionFactory);
        this.afterPropertiesSet();
    }

    protected RedisConnection preProcessConnection(RedisConnection connection, boolean existingConnection) {
   
        return new DefaultStringRedisConnection(connection);
    }
}

下面用StringRedisTemplate做个小测试:

@SpringBootTest
class DemoApplicationTests {
   
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值