springboot集成redis

集成配置

在 Spring Boot 中集成 Redis,可以通过在 application.yml 或者 application.properties 文件中配置 Redis 的连接信息和一些相关属性。以下是一个示例的 Redis 配置:

yml 复制代码
spring:
  redis:
    host: localhost # Redis 服务器地址
    port: 6379 # Redis 服务器端口
    password: 123456 # Redis 认证密码
    database: 0 # Redis 数据库编号
    timeout: 5000 # 连接超时时间(毫秒)
    lettuce:
      pool:
        max-active: 8 # 最大连接数
        max-idle: 8 # 最大空闲连接数
        max-wait: -1ms # 最大等待时间(负数表示无限制)
        min-idle: 0 # 最小空闲连接数
    cache:
      key-prefix: myapp:cache: # 缓存 Key 的前缀
      ttl: 3600 # 缓存时间(秒)

在这个配置中,spring.redis 包含了 Redis 相关的配置信息,其中:

host 和 port 分别为 Redis 服务器的地址和端口;

password 为 Redis 认证密码,如果没有设置密码,则可以省略该配置项;

database 为 Redis 数据库编号,默认为 0;

timeout 为连接超时时间(毫秒);

lettuce.pool 为连接池相关配置,包括最大、最小连接数等;

cache.key-prefix 为缓存 Key 的前缀,用于区分不同的应用或缓存类型;

cache.ttl 为缓存时间(秒),即缓存数据的生命周期。

需要注意的是,上述配置中的 lettuce 是 Spring Boot 中使用的 Redis 客户端库之一,用于连接 Redis 服务器和执行 Redis 命令。如果您使用的是其他的 Redis 客户端库,如 Jedis,那么对应的配置属性可能会有所不同。

另外,要配置 Redis 的持久化时间,可以通过设置 cache.ttl 属性来实现。在上述示例中,我将缓存时间设置为 3600 秒,也就是 1 小时。如果需要设置更长或者更短的缓存时间,只需要修改该属性的值即可。如果将缓存时间设置为 0 或者一个负数,则表示禁用缓存。

需要注意的是,缓存时间的设置需要根据具体的业务需求和应用场景来确定。如果数据变化频繁或者有实时性要求,那么缓存时间可能需要设置得较短;反之,如果数据变化较少或者缓存需要保留较长时间,那么可以适当增加缓存时间。同时,长时间的缓存也可能会占用较多的内存或者存储空间,因此需要根据实际情况进行权衡和调整。

持久化配置

在 Spring Boot 中,Redis 默认情况下是以内存数据库的形式运行,并且不会自动将数据持久化到磁盘。如果希望将 Redis 的数据持久化到磁盘,以实现数据的持久化存储和可靠性保证,可以通过 Redis 提供的持久化机制来实现。

Redis 提供了两种持久化方式:RDB(Redis Database)和AOF(Append-Only File)。

RDB 持久化方式:

RDB 是将 Redis 在某个时间点的数据快照(Snapshot)保存到磁盘上的二进制文件中。当 Redis 重启时,可以使用该文件来还原 Redis 的数据状态。

RDB 持久化是通过配置 Redis 的 save 参数来设置触发快照的条件和频率。默认的配置是每当有 900 秒(15 分钟)内有至少 1 个键发生变化,且至少有 5 个键被删除时,则会触发保存快照。

可以通过修改 Redis 配置文件中的 save 参数,来调整触发快照的条件和频率。例如,将 save 900 1 改为 save 600 10,表示在 600 秒内有至少 10 个键发生变化时触发保存快照。

AOF 持久化方式:

AOF 是将 Redis 的写操作以追加的方式记录到磁盘上的日志文件中。当 Redis 重启时,会重新执行 AOF 文件中的命令来还原数据。

AOF 持久化的频率可以通过配置 Redis 的 appendfsync 参数来设置。常见的选项有 always、everysec 和 no。默认配置是 appendfsync everysec,表示每秒将日志追加到磁盘一次。

可以根据需求修改 appendfsync 参数,如将其改为 appendfsync always,表示每次写入都立即同步到磁盘。

需要根据实际需求和应用场景选择 RDB 或 AOF 持久化方式,并根据具体需求调整触发快照或追加日志的条件和频率。持久化的频率应该根据数据的重要性、变化频率和系统负载等因素进行权衡,保证数据的可靠性和性能的平衡。

在 Spring Boot 中配置 Redis 持久化方式的相关参数,可以在 application.yml 或者 application.properties 文件中添加以下配置:

yml 复制代码
spring:
  redis:
    ...
    # RDB 持久化配置
    redis.save: "600 10" # 在 600 秒内有至少 10 个键发生变化时保存快照
    # AOF 持久化配置
    redis.appendfsync: always # 每次写入都立即同步到磁盘
相关推荐
devpotato1 小时前
Spring Boot mTLS 报 `keystore password was incorrect`:不一定是密码错了
spring boot·tls·pkcs12·mtls
Deepincode2 小时前
Redis源码探究系列—跳表(skiplist)源码实现详解
redis
keep one's resolveY3 小时前
SpringBoot实现重试机制的四种方案
java·spring boot·后端
阿丰资源5 小时前
基于Spring Boot的电影城管理系统(直接运行)
java·spring boot·后端
虹科网络安全5 小时前
艾体宝产品|深度解读 Redis 8.4 新增功能:原子化 Slot 迁移(下)
数据库·redis·bootstrap
消失的旧时光-19436 小时前
Spring Boot 工程化进阶:统一返回 + 全局异常 + AOP 通用工具包
java·spring boot·后端·aop·自定义注解
StockTV7 小时前
印度股票实时数据 NSE和BSE的实时行情、K 线及指数数据
java·开发语言·spring boot·python
橘子海全栈攻城狮8 小时前
【最新源码】养老院系统管理A013
java·spring boot·后端·web安全·微信小程序
敖正炀8 小时前
反模式与排查宝典:Spring Boot 自动配置与核心机制的常见陷阱
spring boot