首页 > 数据库 >springboot整合redis详细教程

springboot整合redis详细教程

时间:2024-11-05 23:45:07浏览次数:6  
标签:教程 springboot redis Redis 默认 import 集合 org

 前言

什么是redis? 

Redis 是一个开源的高性能键值存储系统,通常用作数据库、缓存或消息代理。以下是对 Redis 的详细介绍:

1. 基本特性

  • 速度快:Redis 的读写速度非常快,可以达到每秒数万次的读写操作。
  • 多种数据结构:支持字符串、列表、集合、有序集合、散列、位图、超日志和地理空间索引等多种数据结构。
  • 原子操作:Redis 的所有操作都是原子性的,这意味着它们要么完全执行,要么完全不执行,这有助于保证数据的一致性。
  • 丰富的特性:除了基本的键值存储功能外,Redis 还提供了发布/订阅、事务、持久化、复制、Lua 脚本执行等高级功能。

2. 数据结构

  • 字符串(String):最基本的数据结构,可以存储字符串和二进制数据。
  • 列表(List):一个有序集合,支持在两端添加或移除元素。
  • 集合(Set):一个无序集合,自动去除重复元素。
  • 有序集合(Sorted Set):与集合类似,但每个元素都有一个分数,可以按照分数排序。
  • 散列(Hash):类似于其他语言中的字典或对象,存储键值对。
  • 位图(Bitmaps):使用位来存储信息,适合用于表示布尔值的集合。
  • 超日志(HyperLogLog):用于基数统计,可以用于去重计数。
  • 地理空间(Geospatial):用于存储地理位置信息,并进行地理位置查询。

3. 持久化

  • RDB(Redis Database):通过创建内存数据的快照来持久化数据。可以配置定时任务自动保存。
  • AOF(Append Only File):记录每次写操作命令,以日志的形式保存,启动时重放这些命令来恢复数据。

4. 复制

  • 主从复制:一个主节点可以有多个从节点,从节点可以用于读取操作,以此来分散读负载,并且从节点可以作为主节点的备份。

5. 高可用性

  • Sentinel(哨兵):用于监控 Redis 主从服务器,并在主服务器下线时自动进行故障转移。

6. 集群

  • Redis Cluster:提供数据分片和高可用性,不需要客户端知道数据存放在哪个节点,Redis Cluster 会自动处理。

7. 安全性

  • 认证:可以通过设置密码来保护 Redis 服务器。
  • 加密连接:支持使用 SSL/TLS 加密客户端和服务器之间的连接。

8. 应用场景

  • 缓存:提高热点数据的读取速度,减少数据库的压力。
  • 会话存储:在分布式系统中存储用户会话。
  • 消息队列:使用发布/订阅模式实现异步消息传递。
  • 排行榜:使用有序集合实现实时更新的排行榜。
  • 实时分析:使用 HyperLogLog 进行基数统计,进行实时分析。

9. 配置和优化

  • 内存管理:可以通过配置来限制内存使用量,以及设置内存淘汰策略。
  • 性能优化:可以通过调整持久化策略、复制策略、网络配置等来优化 Redis 的性能。

Redis 的灵活性和高性能使其成为许多现代应用的理想选择,无论是作为数据库、缓存还是消息传递系统。

实现步骤

1. 引入redis依赖

第一个为redis的起步依赖是必须引入的,第二个是选用的



<!-- redis 依赖-->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- redis commons-pool2 是用于 Lettuce 连接池配置的依赖-->
<dependency>
    <groupId>org.apache.commons</groupId>
     <artifactId>commons-pool2</artifactId>
</dependency>

2.配置redis

 在application.yml 文件,这样配置:

# Redis 配置
spring:
  redis:
    host: localhost # 指定 Redis 服务器的地址
    port: 6379 # 指定 Redis 服务器的端口,默认为 6379
    database: 0 # 指定 Redis 数据库的索引,默认为 0
    password: # 指定 Redis 连接密码,如果需要的话
    timeout: 2000ms # 指定 Redis 连接超时时间,默认为 2000 毫秒
  # 连接池配置
    lettuce:
      pool:
        min-idle: 0 # 最小空闲连接数,默认为 0
        max-idle: 8 # 最大空闲连接数,默认为 8
        max-active: 8 # 连接池中的最大连接数,默认为 8
        max-wait: -1ms # 如果在等待可用连接时,超过这个时间还没有可用连接,则抛出异常,默认为 -1(无限制)

3.测试是否成功

在test文件夹下,创建一个RedisTest的测试类。

 测试代码:

package com.ccyx.redisdemo;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;

import java.util.concurrent.TimeUnit;

@SpringBootTest
class RedisTest {

    @Autowired
    private RedisTemplate redisTemplate;
    @Test
    void testRedis() {
        // 添加缓存键值对name:mijiu并设置过期时间为100秒
        redisTemplate.opsForValue().set("name", "mijiu",
                100, TimeUnit.SECONDS);
        String value = (String) redisTemplate.opsForValue().get("name");
        System.out.println(value);
    }

}

如果成功可以看到控制台已经打印出刚刚输入进redis中的值:

注意,需要启动redis的服务才可以。

标签:教程,springboot,redis,Redis,默认,import,集合,org
From: https://blog.csdn.net/qq_64734490/article/details/143522503

相关文章

  • IDEA 2024 安装激活教程(附激活补丁,亲测有效)
    第一步前往idea的官网,下载新版的idea下载完成后,进行安装,next,安装完成首次打开,会要求输入激活码才能使用第二步点击获取补丁文件保存下载之后进入文件夹***/JetBrains2023最新全家桶激活***找到文件/方式3:永久激活补丁+脚本(适合最新版本,可显示到2025年)点击进入/scr......
  • java计算机毕业设计基于Springboot的助学金管理系统设计与实现(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景在教育领域,助学金管理是高校及各类教育机构的重要工作内容。随着学生数量的不断增加以及助学金种类和发放规则的日益复杂,传统的助学金管理方式面......
  • java计算机毕业设计基于Springboot的大学宿舍管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容基于Springboot的大学宿舍管理系统的相关研究说明一、研究背景随着大学教育的不断发展,高校招生规模持续扩大,大学宿舍的管理面临着日益复杂的局面。传统的宿......
  • 关于 IntelliJ IDEA 2024 安装激活教程(亲测有效~)
    第一步速度慢的点击这里进行下载第二步点击xx关掉程序!第三步点击获取补丁文件打开标注的文件注意:以后这个文件夹不要动点击进入/scripts点击【确定】按钮后,过程大概5-30秒,如看到弹框提示Done时,表示成功完成,之后打开idea输入6G5NXCPJZB-eyJsaWNlbnN......
  • 基于Java+SpringBoot心理测评心理测试系统功能实现一
    一、前言介绍:1.1项目摘要心理测评和心理测试系统在当代社会中扮演着越来越重要的角色。随着心理健康问题日益受到重视,心理测评和心理测试系统作为评估个体心理状态、诊断心理问题、制定心理治疗方案的工具,其需求和应用范围不断扩大。首先,现代社会节奏快速,竞争激烈,人们面临着来......
  • 基于Java+SpringBoot心理测评心理测试系统功能实现二
    一、前言介绍:1.1项目摘要心理测评和心理测试系统在当代社会中扮演着越来越重要的角色。随着心理健康问题日益受到重视,心理测评和心理测试系统作为评估个体心理状态、诊断心理问题、制定心理治疗方案的工具,其需求和应用范围不断扩大。首先,现代社会节奏快速,竞争激烈,人们面临着来......