尚硅谷Redis7 笔记实现指南

1. 概述

本文将指导您如何使用Spring Boot和Redis实现“尚硅谷Redis7 笔记”。我们将介绍整个实现过程的流程和每个步骤所需的代码。

在本项目中,我们将使用Spring Boot作为开发框架,Redis作为我们的数据持久化工具。我们将实现基本的增删改查操作,并演示如何使用Redis实现数据缓存。

2. 实现流程

下表展示了实现“尚硅谷Redis7 笔记”的整个流程:

步骤 描述
1 创建项目并添加依赖
2 配置Redis连接
3 定义笔记数据模型
4 实现笔记的增删改查功能
5 添加Redis缓存支持

接下来,我们将详细介绍每个步骤所需的代码和操作。

3. 项目搭建

首先,创建一个新的Spring Boot项目,并添加所需的依赖。在pom.xml文件中添加以下依赖:

<dependencies>
    <!-- Spring Boot Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Redis -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
</dependencies>

4. 配置Redis连接

application.properties文件中配置Redis连接信息:

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

5. 定义笔记数据模型

创建一个名为Note的Java类,表示笔记实体:

public class Note {
    private Long id;
    private String title;
    private String content;

    // 省略构造函数、getter和setter
}

6. 实现笔记的增删改查功能

创建一个名为NoteController的Java类,用于处理与笔记相关的HTTP请求:

@RestController
@RequestMapping("/notes")
public class NoteController {
    @Autowired
    private NoteService noteService;

    @GetMapping("/")
    public List<Note> getAllNotes() {
        return noteService.getAllNotes();
    }

    @GetMapping("/{id}")
    public Note getNoteById(@PathVariable Long id) {
        return noteService.getNoteById(id);
    }

    @PostMapping("/")
    public Note addNote(@RequestBody Note note) {
        return noteService.addNote(note);
    }

    @PutMapping("/{id}")
    public Note updateNote(@PathVariable Long id, @RequestBody Note note) {
        return noteService.updateNote(id, note);
    }

    @DeleteMapping("/{id}")
    public void deleteNote(@PathVariable Long id) {
        noteService.deleteNote(id);
    }
}

创建一个名为NoteService的Java类,用于实现笔记的增删改查功能:

@Service
public class NoteService {
    @Autowired
    private NoteRepository noteRepository;

    public List<Note> getAllNotes() {
        return noteRepository.findAll();
    }

    public Note getNoteById(Long id) {
        return noteRepository.findById(id).orElse(null);
    }

    public Note addNote(Note note) {
        return noteRepository.save(note);
    }

    public Note updateNote(Long id, Note note) {
        Note existingNote = noteRepository.findById(id).orElse(null);
        if (existingNote != null) {
            existingNote.setTitle(note.getTitle());
            existingNote.setContent(note.getContent());
            return noteRepository.save(existingNote);
        }
        return null;
    }

    public void deleteNote(Long id) {
        noteRepository.deleteById(id);
    }
}

创建一个名为NoteRepository的Java接口,继承自CrudRepository,用于与数据库交互:

@Repository
public interface NoteRepository extends CrudRepository<Note, Long> {
}

7. 添加Redis缓存支持

NoteService中添加Redis缓存支持:

@Service
public class NoteService {
    @Autowired
    private NoteRepository noteRepository;

    @Cacheable(value = "notes", key = "#id")
    public Note getNoteById(Long id) {
        return noteRepository.findById(id).orElse(null);
    }

    @CachePut(value = "notes", key = "#note.id")
    public Note addNote(Note note) {
        return noteRepository.save(note);