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 # 每次写入都立即同步到磁盘
相关推荐
JH30731 小时前
SpringBoot 优雅处理金额格式化:拦截器+自定义注解方案
java·spring boot·spring
qq_12498707534 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
Coder_Boy_4 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
2301_818732065 小时前
前端调用控制层接口,进不去,报错415,类型不匹配
java·spring boot·spring·tomcat·intellij-idea
此生只爱蛋5 小时前
【Redis】主从复制
数据库·redis
汤姆yu8 小时前
基于springboot的尿毒症健康管理系统
java·spring boot·后端
暮色妖娆丶8 小时前
Spring 源码分析 单例 Bean 的创建过程
spring boot·后端·spring
biyezuopinvip9 小时前
基于Spring Boot的企业网盘的设计与实现(任务书)
java·spring boot·后端·vue·ssm·任务书·企业网盘的设计与实现
惊讶的猫10 小时前
redis分片集群
数据库·redis·缓存·分片集群·海量数据存储·高并发写
JavaGuide10 小时前
一款悄然崛起的国产规则引擎,让业务编排效率提升 10 倍!
java·spring boot