活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      文档中心

      分布式缓存服务Redis版

      分布式缓存服务Redis版

        • 产品动态
        • 产品简介
        • 产品定义
        • 应用场景
        • 实例类型
        • Redis单机实例
        • Redis主备实例
        • Redis Proxy集群实例
        • Redis Cluster集群实例
        • 读写分离实例
        • 实例规格
        • Redis3.0实例
        • Redis4.0/5.0实例
        • Redis 6.0实例
        • 开源命令兼容性
        • Redis3.0命令
        • Redis4.0命令
        • Redis5.0命令
        • Redis 6.0命令
        • Web CLI命令
        • 实例受限使用命令
        • 部分命令使用限制
        • 缓存灾备策略
        • Redis版本差异
        • 与开源服务的差异
        • 基本概念
        • 与其他服务的关系
        • 权限管理
        • 计费说明
        • 公有云计费说明
        • 产品价格
        • 计费方式
        • 计费模式
        • 专属云计费说明
        • 开通方式
        • 产品价格
        • 计费模式
        • 操作指导
        • 实例配置管理
        • 配置管理说明
        • 修改实例配置参数
        • 修改实例维护时间窗
        • 修改实例安全组
        • 查看实例后台任务
        • 查看Redis 3.0 Proxy集群实例的数据存储统计信息
        • 分析Redis实例大Key和热Key
        • 查询Redis实例慢查询
        • 管理分片与副本
        • 实例诊断
        • 监控
        • 支持的监控指标
        • 查看监控指标
        • 必须配置的告警监控
        • 实例备份恢复管理
        • 备份与恢复说明
        • 设置备份策略
        • 手动备份实例
        • 实例恢复
        • 下载实例备份文件
        • 密码管理
        • 关于实例连接密码的说明
        • 修改缓存实例密码
        • 重置缓存实例密码
        • 修改Redis实例的访问方式
        • 实例日常操作
        • 变更规格
        • 重启实例
        • 删除实例
        • 主备切换
        • 清空实例数据
        • 导出实例列表
        • 命令重命名
        • 使用DCS迁移数据
        • 使用DCS迁移介绍
        • 备份文件导入方式
        • 备份文件导入方式-OBS桶
        • 备份文件导入方式-Redis实例
        • 在线迁移方式
        • 实例交换IP
        • 审计
        • 服务支持的DCS操作列表
        • 查看云审计日志
        • 权限管理
        • 参数模板
        • 查看参数模板信息
        • 创建自定义参数模板
        • 修改自定义参数模板
        • 删除自定义参数模板
        • 数据迁移指南
        • 概述
        • 迁移流程介绍
        • 迁移方案概览
        • 自建Redis迁移至DCS
        • 使用在线迁移自建Redis
        • 使用备份文件迁移自建Redis
        • 使用Redis-cli迁移自建Redis(AOF文件)
        • 使用Redis-cli迁移自建Redis(RDB文件)
        • 使用Redis-Shake工具迁移自建Redis Cluster集群
        • DCS实例间迁移
        • 使用在线迁移Redis实例
        • 使用备份文件迁移不同Region/Redis版本的实例
        • 其他云厂商Redis服务迁移至DCS
        • 使用在线迁移其他云厂商Redis
        • 使用备份文件迁移其他云厂商Redis
        • 使用Rump在线迁移
        • 使用Redis-Shake工具离线迁移其他云厂商Redis Cluster集群
        • 使用Redis-shake工具在线全量迁移其他云厂商Redis
        • DCS实例迁移下云
        • 快速入门
        • 创建实例
        • 创建前准备
        • 准备实例依赖资源
        • 创建Redis实例
        • 连接实例
        • 使用Redis-cli连接Redis实例
        • 多语言连接
        • Java客户端
        • Jedis
        • Lettuce
        • Redisson
        • SpringBoot集成Lettuce
        • Python Redis客户端
        • Go Redis客户端
        • C++Redis客户端(hiredis)
        • C# Redis客户端
        • PHP客户端
        • Node.js Redis客户端
        • 控制台连接Redis4.0/5.0/6.0实例
        • 查看实例信息
        • 最佳实践
        • redis常见使用规范
        • 使用Nginx实现公网访问Redis 4.0/5.0的单机主备Proxy集群实例
        • 使用SSH隧道代理机制实现公网访问DCS实例
        • 使用Redis实现排行榜功能
        • 常见问题
        • 实例类型/版本
        • 客户端和网络连接
        • Redis使用
        • Redis命令
        • 扩容缩容与实例升级
        • 监控告警
        • 数据备份/导出
        • 大Key/热Key分析
        • 主备倒换
        • 故障排除
        • Redis连接失败问题排查和解决
        • Redis实例CPU使用率高问题排查和解决
        • Redis实例内存使用率高问题排查和解决
        • 排查Redis实例带宽使用率高的问题
        • 数据迁移失败问题排查
        • 视频专区
        • 相关协议
        • 天翼云分布式缓存服务协议
        • 分布式缓存服务Redis服务等级协议
        • 文档下载
          无相关产品

          本页目录

          帮助中心分布式缓存服务Redis版快速入门连接实例多语言连接Java客户端Redisson
          Redisson
          更新时间 2024-01-10 16:34:34
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2024-01-10 16:34:34
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          本章介绍使用同一VPC内弹性云主机ECS上的Redisson连接Redis实例的方法。

          介绍使用同一VPC内弹性云主机ECS上的Redisson连接Redis实例的方法。更多的客户端的使用方法请参考Redis客户端。

          在springboot类型的项目中,spring-data-redis中提供了对jedis、lettuce的适配,但没有提供对redisson组件的适配。为了能够在springboot中集成redisson,redisson侧主动提供了适配springboot的组件:redisson-spring-boot-starter。

          注意:在springboot1.x中默认集成的是jedis,springboot2.x中改为了lettuce。

          说明
          •  如果创建Redis实例时设置了密码,使用Redisson客户端连接Redis时,需要配置密码进行连接,建议不要将明文密码硬编码在代码中。

          • 连接单机、主备、Proxy集群实例需要使用Redisson的SingleServerConfig配置对象中的useSingleServer方法,Cluster集群实例需要使用ClusterServersConfig对象中的useClusterServers方法。


          前提条件

          • 已成功申请Redis实例,且状态为“运行中”。
          • 查看并获取待连接Redis实例的IP地址和端口。

          具体步骤请参见查看实例信息。

          • 已创建弹性云主机,创建弹性云主机的方法,请参见《弹性云主机用户指南》。
          • 如果弹性云主机为Linux系统,该弹性云主机必须已经安装java编译环境。
          • Pom配置
            <!-- 引入spring-data-redis组件 --> 
            <dependency> 
                <groupId>org.springframework.boot</groupId> 
                <artifactId>spring-boot-starter-data-redis</artifactId> 
                <exclusions> 
                    <!-- 因springboot2.x中默认集成了lettuce,因此需要排掉该依赖 --> 
                    <exclusion> 
                        <artifactId>lettuce-core</artifactId> 
                        <groupId>io.lettuce</groupId> 
                    </exclusion> 
                </exclusions> 
            </dependency> 
            <!-- 引入redisson对springboot的集成适配包 --> 
            <dependency> 
                <groupId>org.redisson</groupId> 
                <artifactId>redisson-spring-boot-starter</artifactId> 
                <version>${redisson.version}</version> 
            </dependency>
            

          基于Bean方式配置

          因springboot中没有提供对redisson的适配,在application.properties配置文件自然也没有对应的配置项,只能通过基于Bean的方式注入。

          • 单机实例配置
            import org.redisson.codec.JsonJacksonCodec; 
            import org.redisson.config.Config; 
            import org.redisson.config.SingleServerConfig; 
            import org.redisson.spring.data.connection.RedissonConnectionFactory; 
            import org.springframework.beans.factory.annotation.Value; 
            import org.springframework.context.annotation.Bean; 
            import org.springframework.context.annotation.Configuration; 
            
            @Configuration 
            public class RedisConfiguration { 
            
                @Value("${redis.address}") 
                private String redisAddress; 
            
                @Value("${redis.password:}") 
                private String redisPassword; 
            
                @Value("${redis.database:0}") 
                private Integer redisDatabase = 0; 
            
                @Value("${redis.connect.timeout:3000}") 
                private Integer redisConnectTimeout = 3000; 
            
                @Value("${redis.connection.idle.timeout:10000}") 
                private Integer redisConnectionIdleTimeout = 10000; 
            
                @Value("${redis.connection.ping.interval:1000}") 
                private Integer redisConnectionPingInterval = 1000; 
            
                @Value("${redis.timeout:2000}") 
                private Integer timeout = 2000; 
            
                @Value("${redis.connection.pool.min.size:50}") 
                private Integer redisConnectionPoolMinSize; 
            
                @Value("${redis.connection.pool.max.size:200}") 
                private Integer redisConnectionPoolMaxSize; 
            
                @Value("${redis.retry.attempts:3}") 
                private Integer redisRetryAttempts = 3; 
            
                @Value("${redis.retry.interval:200}") 
                private Integer redisRetryInterval = 200; 
            
                @Bean 
                public RedissonConnectionFactory redissonConnectionFactory(Config redissonSingleServerConfig) { 
                    return new RedissonConnectionFactory(redissonSingleServerConfig); 
                } 
            
                @Bean 
                public Config redissonSingleServerConfig() { 
                    Config redissonConfig = new Config(); 
            
                    SingleServerConfig serverConfig = redissonConfig.useSingleServer(); 
                    serverConfig.setAddress(redisAddress); 
                    serverConfig.setConnectionMinimumIdleSize(redisConnectionPoolMinSize); 
                    serverConfig.setConnectionPoolSize(redisConnectionPoolMaxSize); 
            
                    serverConfig.setDatabase(redisDatabase); 
                    serverConfig.setPassword(redisPassword); 
                    serverConfig.setConnectTimeout(redisConnectTimeout); 
                    serverConfig.setIdleConnectionTimeout(redisConnectionIdleTimeout); 
                    serverConfig.setPingConnectionInterval(redisConnectionPingInterval); 
                    serverConfig.setTimeout(timeout); 
                    serverConfig.setRetryAttempts(redisRetryAttempts); 
                    serverConfig.setRetryInterval(redisRetryInterval); 
            
                    redissonConfig.setCodec(new JsonJacksonCodec()); 
                    return redissonConfig; 
                } 
            }
            
          • 主备、读写分离实例配置
            import org.redisson.codec.JsonJacksonCodec; 
            import org.redisson.config.Config; 
            import org.redisson.config.MasterSlaveServersConfig; 
            import org.redisson.config.ReadMode; 
            import org.redisson.config.SubscriptionMode; 
            import org.redisson.spring.data.connection.RedissonConnectionFactory; 
            import org.springframework.beans.factory.annotation.Value; 
            import org.springframework.context.annotation.Bean; 
            import org.springframework.context.annotation.Configuration; 
            
            @Configuration 
            public class RedisConfiguration { 
                @Value("${redis.master.address}") 
                private String redisMasterAddress; 
            
                @Value("${redis.database:0}") 
                private Integer redisDatabase = 0; 
            
                @Value("${redis.password:}") 
                private String redisPassword; 
            
                @Value("${redis.connect.timeout:3000}") 
                private Integer redisConnectTimeout = 3000; 
            
                @Value("${redis.connection.idle.timeout:10000}") 
                private Integer redisConnectionIdleTimeout = 10000; 
            
                @Value("${redis.connection.ping.interval:1000}") 
                private Integer redisConnectionPingInterval = 1000; 
            
                @Value("${redis.timeout:2000}") 
                private Integer timeout = 2000; 
            
                @Value("${redis.master.connection.pool.min.size:50}") 
                private Integer redisMasterConnectionPoolMinSize = 50; 
            
                @Value("${redis.master.connection.pool.max.size:200}") 
                private Integer redisMasterConnectionPoolMaxSize = 200; 
            
                @Value("${redis.retry.attempts:3}") 
                private Integer redisRetryAttempts = 3; 
            
                @Value("${redis.retry.interval:200}") 
                private Integer redisRetryInterval = 200; 
            
                @Bean 
                public RedissonConnectionFactory redissonConnectionFactory(Config redissonMasterSlaveServersConfig) { 
                    return new RedissonConnectionFactory(redissonMasterSlaveServersConfig); 
                } 
            
                @Bean 
                public Config redissonMasterSlaveServersConfig() { 
                    Config redissonConfig = new Config(); 
            
                    MasterSlaveServersConfig serverConfig = redissonConfig.useMasterSlaveServers(); 
                    serverConfig.setMasterAddress(redisMasterAddress); 
            
                    serverConfig.setDatabase(redisDatabase); 
                    serverConfig.setPassword(redisPassword); 
            
                    serverConfig.setMasterConnectionMinimumIdleSize(redisMasterConnectionPoolMinSize); 
                    serverConfig.setMasterConnectionPoolSize(redisMasterConnectionPoolMaxSize); 
            
                    serverConfig.setReadMode(ReadMode.MASTER_SLAVE); 
                    serverConfig.setSubscriptionMode(SubscriptionMode.MASTER); 
            
                    serverConfig.setConnectTimeout(redisConnectTimeout); 
                    serverConfig.setIdleConnectionTimeout(redisConnectionIdleTimeout); 
                    serverConfig.setPingConnectionInterval(redisConnectionPingInterval); 
                    serverConfig.setTimeout(timeout); 
                    serverConfig.setRetryAttempts(redisRetryAttempts); 
                    serverConfig.setRetryInterval(redisRetryInterval); 
            
                    redissonConfig.setCodec(new JsonJacksonCodec()); 
                    return redissonConfig; 
                } 
            }
            
          • Proxy集群实例配置
            import org.redisson.codec.JsonJacksonCodec; 
            import org.redisson.config.Config; 
            import org.redisson.config.SingleServerConfig; 
            import org.redisson.spring.data.connection.RedissonConnectionFactory; 
            import org.springframework.beans.factory.annotation.Value; 
            import org.springframework.context.annotation.Bean; 
            import org.springframework.context.annotation.Configuration; 
            
            @Configuration 
            public class RedisConfiguration { 
            
                @Value("${redis.address}") 
                private String redisAddress; 
            
                @Value("${redis.password:}") 
                private String redisPassword; 
            
                @Value("${redis.database:0}") 
                private Integer redisDatabase = 0; 
            
                @Value("${redis.connect.timeout:3000}") 
                private Integer redisConnectTimeout = 3000; 
            
                @Value("${redis.connection.idle.timeout:10000}") 
                private Integer redisConnectionIdleTimeout = 10000; 
            
                @Value("${redis.connection.ping.interval:1000}") 
                private Integer redisConnectionPingInterval = 1000; 
            
                @Value("${redis.timeout:2000}") 
                private Integer timeout = 2000; 
            
                @Value("${redis.connection.pool.min.size:50}") 
                private Integer redisConnectionPoolMinSize; 
            
                @Value("${redis.connection.pool.max.size:200}") 
                private Integer redisConnectionPoolMaxSize; 
            
                @Value("${redis.retry.attempts:3}") 
                private Integer redisRetryAttempts = 3; 
            
                @Value("${redis.retry.interval:200}") 
                private Integer redisRetryInterval = 200; 
            
                @Bean 
                public RedissonConnectionFactory redissonConnectionFactory(Config redissonProxyServerConfig) { 
                    return new RedissonConnectionFactory(redissonProxyServerConfig); 
                } 
            
                @Bean 
                public Config redissonProxyServerConfig() { 
                    Config redissonConfig = new Config(); 
            
                    SingleServerConfig serverConfig = redissonConfig.useSingleServer(); 
                    serverConfig.setAddress(redisAddress); 
                    serverConfig.setConnectionMinimumIdleSize(redisConnectionPoolMinSize); 
                    serverConfig.setConnectionPoolSize(redisConnectionPoolMaxSize); 
            
                    serverConfig.setDatabase(redisDatabase); 
                    serverConfig.setPassword(redisPassword); 
                    serverConfig.setConnectTimeout(redisConnectTimeout); 
                    serverConfig.setIdleConnectionTimeout(redisConnectionIdleTimeout); 
                    serverConfig.setPingConnectionInterval(redisConnectionPingInterval); 
                    serverConfig.setTimeout(timeout); 
                    serverConfig.setRetryAttempts(redisRetryAttempts); 
                    serverConfig.setRetryInterval(redisRetryInterval); 
            
                    redissonConfig.setCodec(new JsonJacksonCodec()); 
                    return redissonConfig; 
                } 
            }
            
          • Cluster集群实例配置
            import java.util.List; 
            
            import org.redisson.codec.JsonJacksonCodec; 
            import org.redisson.config.ClusterServersConfig; 
            import org.redisson.config.Config; 
            import org.redisson.config.ReadMode; 
            import org.redisson.config.SubscriptionMode; 
            import org.redisson.spring.data.connection.RedissonConnectionFactory; 
            import org.springframework.beans.factory.annotation.Value; 
            import org.springframework.context.annotation.Bean; 
            import org.springframework.context.annotation.Configuration; 
            
            @Configuration 
            public class RedisConfiguration { 
            
                @Value("${redis.cluster.address}") 
                private List<String> redisClusterAddress; 
            
                @Value("${redis.cluster.scan.interval:5000}") 
                private Integer redisClusterScanInterval = 5000; 
            
                @Value("${redis.password:}") 
                private String redisPassword; 
            
                @Value("${redis.connect.timeout:3000}") 
                private Integer redisConnectTimeout = 3000; 
            
                @Value("${redis.connection.idle.timeout:10000}") 
                private Integer redisConnectionIdleTimeout = 10000; 
            
                @Value("${redis.connection.ping.interval:1000}") 
                private Integer redisConnectionPingInterval = 1000; 
            
                @Value("${redis.timeout:2000}") 
                private Integer timeout = 2000; 
            
                @Value("${redis.retry.attempts:3}") 
                private Integer redisRetryAttempts = 3; 
            
                @Value("${redis.retry.interval:200}") 
                private Integer redisRetryInterval = 200; 
            
                @Value("${redis.master.connection.pool.min.size:50}") 
                private Integer redisMasterConnectionPoolMinSize = 50; 
            
                @Value("${redis.master.connection.pool.max.size:200}") 
                private Integer redisMasterConnectionPoolMaxSize = 200; 
            
                @Bean 
                public RedissonConnectionFactory redissonConnectionFactory(Config redissonClusterServersConfig) { 
                    return new RedissonConnectionFactory(redissonClusterServersConfig); 
                } 
            
                @Bean 
                public Config redissonClusterServersConfig() { 
                    Config redissonConfig = new Config(); 
            
                    ClusterServersConfig serverConfig = redissonConfig.useClusterServers(); 
                    serverConfig.setNodeAddresses(redisClusterAddress); 
                    serverConfig.setScanInterval(redisClusterScanInterval); 
            
                    serverConfig.setPassword(redisPassword); 
            
                    serverConfig.setMasterConnectionMinimumIdleSize(redisMasterConnectionPoolMinSize); 
                    serverConfig.setMasterConnectionPoolSize(redisMasterConnectionPoolMaxSize); 
            
                    serverConfig.setReadMode(ReadMode.MASTER); 
                    serverConfig.setSubscriptionMode(SubscriptionMode.MASTER); 
            
                    serverConfig.setConnectTimeout(redisConnectTimeout); 
                    serverConfig.setIdleConnectionTimeout(redisConnectionIdleTimeout); 
                    serverConfig.setPingConnectionInterval(redisConnectionPingInterval); 
                    serverConfig.setTimeout(timeout); 
                    serverConfig.setRetryAttempts(redisRetryAttempts); 
                    serverConfig.setRetryInterval(redisRetryInterval); 
            
                    redissonConfig.setCodec(new JsonJacksonCodec()); 
                    return redissonConfig; 
                } 
            }
            

          参数明细

          Config参数

          参数 默认值 说明
          codec org.redisson.codec.JsonJacksonCodec 编码格式,内置了JSON/Avro/Smile/CBOR/MsgPack等编码格式
          executor null 功能同上,不设置该参数时,会根据threads参数初始化一个线程池
          nettyThreads cpu核数 * 2 连接redis-server的tcp channel使用的线程池,所有channel共享该连接池,映射到netty即Bootstrap.group(...)
          eventLoopGroup null 功能同上,不设置该参数时,会根据nettyThreads参数初始化一个EventLoopGroup,用于底层tcpchannel使用
          transportMode TransportMode.NIO 传输模式,可选有NIO、EPOLL(需额外引包)、KQUEUE(需额外引包)
          lockWatchdogTimeout 30000 监控锁的看门狗超时时间,单位:毫秒。用于分布式锁场景下未指定leaseTimeout参数时,采用该值为默认值
          keepPubSubOrder true 是否按照订阅发布消息的顺序来接收,如能接受并行处理消息,建议设置为false

          单机实例-SingleServerConfig参数

          参数 默认值 说明
          address - 节点连接信息,ip:port
          database 0 选择使用的数据库编号
          connectionMinimumIdleSize 32 连接每个分片主节点的最小连接数
          connectionPoolSize 64 连接每个分片主节点的最大连接数
          subscriptionConnectionMinimumIdleSize 1 连接目标节点的用于发布订阅的最小连接数
          subscriptionConnectionPoolSize 50 连接目标节点的用于发布订阅的最大连接数
          subcriptionPerConnection 5 每个订阅连接上的最大订阅数量
          connectionTimeout 10000 连接超时时间,单位:毫秒
          idleConnectionTimeout 10000 空闲连接的最大回收时间,单位:毫秒
          pingConnectionInterval 30000 检测连接可用心跳,单位:毫秒,建议值:3000ms
          timeout 3000 请求等待响应的超时时间,单位:毫秒
          retryAttemps 3 发送失败的最大重试次数
          retryInterval 1500 每次重试的时间间隔,单位:毫秒,建议值:200ms
          clientName null 客户端名称

          主备、读写分离、Proxy集群实例MasterSlaveServersConfig参数

          参数 默认值 说明
          masterAddress - 主节点连接信息,ip:port
          slaveAddresses - 从节点连接信息列表,Set<ip:port>
          readMode SLAVE 读取模式,默认读流量分发到从节点,可选值:MASTER、SLAVE、MASTER_SLAVE;建议MASTER
          loadBalancer RoundRobinLoadBalancer 负载均衡算法,在readMode为SLAVE、MASTER_SLAVE时生效,均衡读流量分发
          masterConnectionMinimumIdleSize 32 连接每个分片主节点的最小连接数
          masterConnectionPoolSize 64 连接每个分片主节点的最大连接数
          slaveConnectionMinimumIdleSize 32 连接每个分片每个从节点的最小连接数,如readMode=MASTER,该配置值将失效
          slaveConnectionPoolSize 64 连接每个分片每个从节点的最大连接数,如readMode=MASTER,该配置值将失效
          subscriptionMode SLAVE 订阅模式,默认只在从节点订阅,可选值:SLAVE、MASTER;建议采用MASTER
          subscriptionConnectionMinimumIdleSize 1 连接目标节点的用于发布订阅的最小连接数
          subscriptionConnectionPoolSize 50 连接目标节点的用于发布订阅的最大连接数
          subcriptionPerConnection 5 每个订阅连接上的最大订阅数量
          connectionTimeout 10000 连接超时时间,单位:毫秒
          idleConnectionTimeout 10000 空闲连接的最大回收时间,单位:毫秒
          pingConnectionInterval 30000 检测连接可用心跳,单位:毫秒,建议值:3000ms
          timeout 3000 请求等待响应的超时时间,单位:毫秒
          retryAttemps 3 发送失败的最大重试次数
          retryInterval 1500 每次重试的时间间隔,单位:毫秒,建议值:200ms
          clientName null 客户端名称

          Cluster集群实例-ClusterServersConfig参数

          参数 默认值 说明
          nodeAddress - 集群节点的地址连接信息,每个节点采用ip:port方式,多个节点连接信息用英文逗号隔开
          password null 集群登录密码
          scanInterval 1000 定时检测集群节点状态的时间间隔,单位:毫秒
          readMode SLAVE 读取模式,默认读流量分发到从节点,可选值:MASTER、SLAVE、MASTER_SLAVE;建议修改为MASTER
          loadBalancer RoundRobinLoadBalancer 负载均衡算法,在readMode为SLAVE、MASTER_SLAVE时生效,均衡读流量分发
          masterConnectionMinimumIdleSize 32 连接每个分片主节点的最小连接数
          masterConnectionPoolSize 64 连接每个分片主节点的最大连接数
          slaveConnectionMinimumIdleSize 32 连接每个分片每个从节点的最小连接数,如readMode=MASTER,该配置值将失效
          slaveConnectionPoolSize 64 连接每个分片每个从节点的最大连接数,如readMode=MASTER,该配置值将失效
          subscriptionMode SLAVE 订阅模式,默认只在从节点订阅,可选值:SLAVE、MASTER;建议采用MASTER
          subscriptionConnectionMinimumIdleSize 1 连接目标节点的用于发布订阅的最小连接数
          subscriptionConnectionPoolSize 50 连接目标节点的用于发布订阅的最大连接数
          subcriptionPerConnection 5 每个订阅连接上的最大订阅数量
          connectionTimeout 10000 连接超时时间,单位:毫秒
          idleConnectionTimeout 10000 空闲连接的最大回收时间,单位:毫秒
          pingConnectionInterval 30000 检测连接可用心跳,单位:毫秒,建议值:3000
          timeout 3000 请求等待响应的超时时间,单位:毫秒
          retryAttemps 3 发送失败的最大重试次数
          retryInterval 1500 每次重试的时间间隔,单位:毫秒,建议值:200
          clientName null 客户端名称

          DCS实例配置建议

          • 读取模式(readMode)

          建议采用MASTER,即Master节点承担所有的读写流量,一方面避免数据因主从同步时延带来的一致性问题;另一方面,如果从节点故障,配置值=SLAVE,所有读请求会触发报错;配置值=MASTER_SLAVE,部分读请求会触发异常。读报错会持续failedSlaveCheckInterval(默认180s)时间,直至从可用节点列表中摘除。

          如需读写流量分流处理,DCS服务提供了针对读写流量分流的读写分离实例类型,通过在中间架设代理节点实现读写流量分发,遇到从节点故障时,自动切流至主节点,对业务应用无感知,且故障感知时间窗口远小于redisson内部的时间窗口。

          • 订阅模式(subscriptionMode)

          建立采用MASTER,原理同上。

          • 连接池配置
          说明

          以下计算方式只适用于一般业务场景,建议根据业务情况做适当调整适配。

          连接池的大小没有绝对的标准,建议根据业务流量进行合理配置,一般连接池大小的参数计算公式如下:

          最小连接数=(单机访问Redis QPS)/(1000ms / 单命令平均耗时)

          最大连接数=(单机访问Redis QPS)/(1000ms / 单命令平均耗时)* 150%

          举例:某个业务应用的QPS为10000左右,每个请求需访问Redis10次,即每秒对Redis的访问次数为100000次,同时该业务应用有10台机器,计算如下:

          单机访问Redis QPS = 100000 / 10 = 10000

          单命令平均耗时 = 20ms(Redis处理单命令耗时为510ms,遇到网络抖动按照1520ms来估算)

          最小连接数 =(10000)/(1000ms / 20ms)= 200

          最大连接数 =(10000)/(1000ms / 20ms)* 150% = 300

          • 重试配置

          redisson中支持重试配置,主要是如下两个参数,建议根据业务情况配置合理值,一般重试次数为3,重试间隔为200ms左右。

          retryAttemps:配置重试次数

          retryInterval:配置重试时间间隔

          说明

          在redisson中,部分API通过借助LUA的方式实现,性能表现上偏低,建议使用jedis客户端替换redisson。

          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

          上一篇 :  Lettuce
          下一篇 :  SpringBoot集成Lettuce
          搜索 关闭
          ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2025天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明