当前位置: 首页 > news >正文

springboot的 spring.redis.lettuce的max-active、max-idle、min-idle的搭配

在Spring Boot中,使用Lettuce作为Redis客户端是一种常见的选择。Lettuce是一个高性能、可扩展的异步Redis客户端。下面是关于application.yml配置文件中spring.redis.lettuce的一些配置:

spring:redis:host: localhostport: 6379database: 0lettuce:pool:max-active: 10  # 最大活动连接数max-idle: 5     # 最大空闲连接数min-idle: 2     # 最小空闲连接数max-wait: -1ms  # 最大等待时间,-1表示无限制shutdown-timeout: 100ms  # 关闭连接的超时时间

配置项的含义:

  • spring.redis.hostspring.redis.port:配置Redis服务器的主机名和端口号。

  • spring.redis.database:选择要使用的数据库索引。默认情况下,Redis有16个数据库,索引从0到15。

  • spring.redis.lettuce.pool.max-active:指定连接池中的最大活动连接数。当连接数达到此值时,后续的连接请求将被阻塞,默认值为8。

  • spring.redis.lettuce.pool.max-idle:指定连接池中的最大空闲连接数。超过此数目的空闲连接将被释放,默认值为8。

  • spring.redis.lettuce.pool.min-idle:指定连接池中的最小空闲连接数。连接池中始终会保持至少这么多的空闲连接,默认值为0。

  • spring.redis.lettuce.pool.max-wait:指定从连接池获取连接的最大等待时间,单位是毫秒。如果设置为-1,表示无限制等待。

  • spring.redis.lettuce.shutdown-timeout:指定在应用关闭时,等待连接池中连接关闭的超时时间。

max-active、max-idle、min-idle如何搭配

这三个配置项分别是关于连接池中连接数量的设置,它们的搭配应该根据你的应用需求和系统资源来选择。连接池的目标是在平衡性能和资源使用之间找到合适的权衡点。

在搭配这三个配置项时,你需要考虑以下几点:

  1. 应用的并发量: 如果你的应用需要支持高并发访问,max-active 应该设置得足够大,以确保连接池不会成为性能瓶颈。

  2. 系统资源: 你需要考虑服务器的内存和处理能力。如果服务器资源有限,max-activemax-idle 可能需要根据服务器的能力来调整,以免过多的连接占用资源。

  3. 连接创建成本: 创建和销毁连接都是有成本的,过多的连接可能会导致性能下降。因此,min-idle 可以设置得稍微高一些,以避免频繁地创建和销毁连接。

  4. 流量变化: 如果你的应用存在流量的峰值和谷值,你可能需要根据时间段调整这些配置项,以便在高流量期间分配更多的连接。

基于上述考虑,一个常见的配置可能是:

  • max-active 根据预估的最大并发量来设置,例如 50 到 100,根据系统能力进行调整。
  • max-idle 设置在 max-active 的一半到三分之二,例如 25 到 50,根据服务器资源调整。
  • min-idle 设置为一定数量,例如 10,以确保始终有一定数量的空闲连接可用。

总之,这些值的搭配需要根据你的应用的特定情况进行调整和测试,以确保连接池在不同负载情况下的性能和资源使用的平衡。

http://www.lryc.cn/news/132160.html

相关文章:

  • 盒子模型样式
  • 动态规划入门之线性动态规划
  • 基于HTML+CSS+Echarts大屏数据可视化集合共99套
  • Leetcode 0814周总结
  • 华为网络篇 OSPF的Silent-Interface-33
  • longtext,bigint是什么数据类型
  • Hive无法启动的解决方案
  • 华为云零代码新手教学-体验通过Astro Zero快速搭建微信小程序
  • 【前端】快速掌握HTML+CSS核心知识点
  • 二叉树算法的框架套路总结
  • 【ARM 嵌入式 编译 Makefile 系列 2 - Makefile 如何打印信息】
  • re学习(34)攻防世界-csaw2013reversing2(修改汇编顺序)
  • centos 7.9 部署django项目
  • 12 正则表达式 | HTTP协议相关介绍
  • 【C语言】数组概述
  • 8. 实现业务功能--用户注册
  • 深入浅出Pytorch函数——torch.nn.init.eye_
  • 版本控制工具Git集成IDEA的学习笔记(第一篇Gitee)
  • 【链表】 61. 旋转链表
  • 深入浅出Pytorch函数——torch.nn.init.kaiming_uniform_
  • 查询Oracle和MySQL数据库中当前所有连接信息
  • Android glide框架及框架涉及到的设计模式
  • 使用yolov5进行安全帽检测填坑指南
  • 【BASH】回顾与知识点梳理(三十二)
  • vscode远程调试PHP代码
  • flink1.17 实现 udf scalarFunctoin get_json_object 支持 非标准化json
  • 基于VUE3+Layui从头搭建通用后台管理系统(前端篇)九:自定义组件封装下
  • 设计模式详解-装饰器模式
  • Android5:活动生命周期
  • 第2章 数据结构和算法概述