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 # 每次写入都立即同步到磁盘
相关推荐
考虑考虑10 小时前
Jpa使用union all
java·spring boot·后端
阿杆20 小时前
同事嫌参数校验太丑,我直接掏出了更优雅的 SpEL Validator
java·spring boot·后端
AAA修煤气灶刘哥1 天前
别让Redis「歪脖子」!一次搞定数据倾斜与请求倾斜的捉妖记
redis·分布式·后端
昵称为空C1 天前
SpringBoot3 http接口调用新方式RestClient + @HttpExchange像使用Feign一样调用
spring boot·后端
christine-rr2 天前
linux常用命令(4)——压缩命令
linux·服务器·redis
麦兜*2 天前
MongoDB Atlas 云数据库实战:从零搭建全球多节点集群
java·数据库·spring boot·mongodb·spring·spring cloud
麦兜*2 天前
MongoDB 在物联网(IoT)中的应用:海量时序数据处理方案
java·数据库·spring boot·物联网·mongodb·spring
汤姆yu2 天前
基于springboot的毕业旅游一站式定制系统
spring boot·后端·旅游
计算机毕业设计木哥2 天前
计算机毕设选题推荐:基于Java+SpringBoot物品租赁管理系统【源码+文档+调试】
java·vue.js·spring boot·mysql·spark·毕业设计·课程设计
凯子坚持 c2 天前
精通 Redis list:使用 redis-plus-plus 的现代 C++ 实践深度解析
c++·redis·list