Springboot(四)集成Redis

本文介绍了Redis作为高性能key-value数据库的特点及其在Spring Boot项目中的集成方法。Redis支持数据持久化、丰富的数据类型以及数据备份等功能,并详细展示了如何在Spring Boot应用中配置和使用Redis。

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

在我们的应用开发中,我们时常需要使用缓存技术来进行开发以此来提高我们程序的可用性;而在众多的缓存技术中Redis 是我们经常使用到的技术,那么为什么Redis如此受欢迎呢?
首先Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis 与其他 key - value 缓存产品有以下三个特点:

 1. Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
 2. Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
 3.   Redis支持数据的备份,即master-slave模式的数据备份。
 
 Redis 优势

    性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
    丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
    原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
    丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

Redis与其他key-value存储有什么不同?

   Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。

   Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。

总的来说,就是快 可以让我们的应用在访问和查询速度上都非常的快。

接下来就进入正题吧 看我们在Springboot中是如何集成redis的吧

关于redis的下载安装可自行网上搜索 这里就不提供了

首先加入jar包



之后在

application.yml 中加入redis 的配置



到这里我们的redis就已经集成在Springboot里面了

接下来我们看看如何使用吧,其实也很简单

先在类中注入StringRedisTemplate

然后直接使用就行了。

然后我们去redis中查询一下


成功!



Spring Boot 3.2项目中集成Redis数据库,可以通过以下方式实现。首先,确保你的项目基于Maven构建,并且已经引入了Spring Boot的必要依赖。接下来需要添加`spring-boot-starter-data-redis`依赖以启用对Redis的支持。 ### 添加Maven依赖 在`pom.xml`文件中添加如下依赖项: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 此外,如果你计划使用Lettuce作为Redis客户端(这是Spring Boot默认推荐的方式),则不需要额外添加任何依赖。但如果你想使用Jedis,可以手动加入其依赖。 ### 配置application.properties 接着,在`application.properties`或`application.yml`文件中配置Redis连接信息。以下是基于`application.properties`的示例: ```properties # Redis Configuration spring.redis.host=localhost spring.redis.port=6379 ``` 如果Redis服务器设置了密码,则可添加: ```properties spring.redis.password=yourpassword ``` 对于更复杂的场景,例如配置超时时间、池化设置等,可以进一步扩展这些属性[^1]。 ### 启用Redis支持 创建一个配置类来定义`RedisTemplate`和`StringRedisTemplate`,以便于操作Redis数据存储。下面是一个简单的例子: ```java 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.StringRedisSerializer; @Configuration public class RedisConfig { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(factory); template.setKeySerializer(new StringRedisSerializer()); template.setValueSerializer(new StringRedisSerializer()); return template; } } ``` 此配置类确保键值对以字符串形式正确序列化/反序列化,便于后续操作。 ### 使用Redis 最后,在需要访问Redis的服务组件中注入并使用`RedisTemplate`或`StringRedisTemplate`进行读写操作。比如: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; @Service public class RedisService { private final RedisTemplate<String, Object> redisTemplate; @Autowired public RedisService(RedisTemplate<String,Object> redisTemplate){ this.redisTemplate = redisTemplate; } // 示例方法:保存与获取数据 public void setData(String key, Object value) { redisTemplate.opsForValue().set(key, value); } public Object getData(String key) { return redisTemplate.opsForValue().get(key); } } ``` 通过上述步骤,可以在Spring Boot 3.2项目中成功集成Redis数据库,并利用其高效的数据处理能力提升应用性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值