SpringBoot 集成 Redis 总结

一、Redis 简介

Redis 是一个开源的内存数据结构存储系统,它可以用作数据库、缓存和消息中间件。Redis 以其高效的性能、丰富的数据结构和简单的 API 而受到广泛关注。它将数据存储在内存中,并可以通过持久化机制将数据保存到硬盘上,以防止数据丢失。

二、Redis 的数据类型

  1. 字符串(String):可以存储任何形式的字符串,如文本、数字等。例如:SET key value
  2. 哈希(Hash):类似于 Java 中的 Map 结构,由键值对组成。例如:HSET hash_key field value
  3. 列表(List):是一个有序的字符串列表,可以在列表的两端进行快速的插入和删除操作。例如:LPUSH list_key value
  4. 集合(Set):是一个无序的、不重复的字符串集合。例如:SADD set_key value
  5. 有序集合(Sorted Set):与集合类似,但每个元素都关联一个分数,可以根据分数进行排序。例如:ZADD sorted_set_key score value

三、Redis 的关键优势

  1. 高性能:Redis 将数据存储在内存中,因此具有非常高的读写速度,可以满足对性能要求较高的应用场景。
  2. 丰富的数据结构:Redis 提供了多种数据结构,可以满足不同的应用需求,使得开发者可以更加灵活地存储和操作数据。
  3. 持久化:Redis 支持两种持久化方式,即 RDB(快照)和 AOF(日志追加),可以将数据持久化到硬盘上,保证数据的安全性。
  4. 高可用性:Redis 可以通过主从复制和哨兵机制实现高可用性,当主节点出现故障时,从节点可以自动切换为主节点,保证服务的不间断。
  5. 支持分布式:Redis 可以很容易地进行分布式部署,通过分片技术可以将数据分布到多个节点上,提高系统的扩展性和性能。

四、SpringBoot 集成 Redis 代码示例

  1. 添加依赖
    pom.xml文件中添加 Redis 依赖:

    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
  2. 配置 Redis
    application.properties文件中配置 Redis:

    spring.redis.host=localhost
    spring.redis.port=6379

  3. 使用 Redis
    创建一个RedisService类,用于操作 Redis:

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.stereotype.Service;

    @Service
    public class RedisService {

    复制代码
     @Autowired
     private RedisTemplate<String, Object> redisTemplate;
    
     public void set(String key, Object value) {
         redisTemplate.opsForValue().set(key, value);
     }
    
     public Object get(String key) {
         return redisTemplate.opsForValue().get(key);
     }

    }

在其他地方可以使用RedisService类来操作 Redis:

复制代码
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MyController {

    @Autowired
    private RedisService redisService;

    @GetMapping("/set")
    public String setValue() {
        redisService.set("key", "value");
        return "Value set in Redis";
    }

    @GetMapping("/get")
    public String getValue() {
        Object value = redisService.get("key");
        return value!= null? value.toString() : "Value not found in Redis";
    }
}
相关推荐
BIG_PEI16 小时前
检查并安装Redis
java
大貔貅喝啤酒16 小时前
基于Windows下载安装Android Studio 3.3.2版本教程(2026详细图文版)
android·java·windows·android studio
奋斗的小方16 小时前
Java基础篇09:项目实战
java·开发语言
海兰16 小时前
【第21篇-续】graph-Stream-Node改造为适配openAI模型示例
java·人工智能·spring boot·spring·spring ai
vKd0Ff21L16 小时前
如何在Dev-C++中设置TDM-GCC为默认编译器第九十一篇
java·jvm·c++
武子康16 小时前
Java-221 RocketMQ 消息存储核心原理:CommitLog、ConsumerQueue、IndexFile 与消息过滤机制
java·大数据·分布式·消息队列·rabbitmq·rocketmq·java-rocketmq
北风toto16 小时前
为什么 IntelliJ IDEA Community 无法开发 Vue?——附解决方案
java·vue.js·intellij-idea
programhelp_16 小时前
Google 2026 New Grad SDE VO 三轮面试详解 | 含Behavioral、Coding、Design
java·服务器·数据库
驭渊的小故事17 小时前
java中的进程的详细解析
java·开发语言
Mr_sst17 小时前
Codex 部署、使用教程 & Vibe Coding 实战指南
java·ai·语言模型·chatgpt·ai编程