腾讯云充值折扣 腾讯云配置Redis缓存
你有没有试过:在腾讯云买了个Redis,填完参数点创建,喜滋滋等着用,结果一连就报错——Connection refused?或者好不容易连上了,Java里一执行set就抛NOAUTH Authentication required?又或者,明明控制台显示“运行中”,telnet your-ip 6379却死活不通?别慌,这不是你手残,是腾讯云Redis的「温柔陷阱」刚对你眨了眨眼。
一、先搞清:你买的到底是个啥?
腾讯云Redis不是“装个软件就行”的玩意儿,它是个托管式云数据库服务。你不用管Linux内核、内存碎片、AOF重写,但得懂它默认不开公网、默认不放行端口、默认强制密码认证——这仨“默认”,就是90%新手栽跟头的地方。
二、控制台三步走:开实例 ≠ 能连上
腾讯云充值折扣 第一步:选对版本和架构
进入腾讯云控制台 → 云数据库 Redis → 创建实例。别急着点“立即购买”。重点看三项:
- 引擎版本:生产环境闭眼选
Redis 6.2(兼容性好、ACL权限细、性能稳);别碰5.x以下,老古董,缺功能还爱掉线; - 架构类型:单节点?别!开发测试可忍,上线必须选
主从双节点(自动故障转移,挂一个不丢数据); - 网络类型:务必选
VPC私有网络,别选“基础网络”(已逐步下线,且跨地域互通麻烦)。
第二步:安全组,才是真正的“门禁系统”
很多同学以为填完VPC就完事了?错!腾讯云把“网络访问控制”拆成两层:VPC决定“能不能进小区”,安全组决定“能不能进你家门”。
创建实例时,会默认关联一个安全组(比如default)。但这个默认组,几乎不放行任何入站端口。你得手动编辑它:
- 进“云服务器” → “安全组” → 找到你实例绑定的那个组;
- 点“入站规则” → “添加规则”;
- 协议类型选
TCP,端口范围填6379,源IP填你自己的服务器IP(如192.168.1.100/32)或开发机公网IP(x.x.x.x/32),千万别填0.0.0.0/0(等于把Redis大门焊死在互联网上,等同于裸奔); - 保存!
小剧场:我有个客户,连了三天连不上,最后发现安全组规则里端口写成了6378……他以为Redis默认是6378(其实是6379)。建议:打开控制台,点开你的Redis实例详情页,拉到最底下,“访问地址”栏右侧有个小问号图标,鼠标悬停,它会明明白白告诉你:“端口:6379”。
三、连之前,先确认三件事
别急着敲redis-cli,先做三道判断题:
- 你连的是内网还是公网?
腾讯云Redis默认只分配内网地址(形如xxx-redis.tencentcloud.com:6379)。如果你的应用部署在腾讯云CVM上,用内网地址连,快、稳、免费;如果本地开发机连,必须开启“公网访问”(实例详情页 → “公网访问” → 开启 → 设置白名单IP),且注意:公网地址≠内网地址,别混用! - 密码有没有带特殊字符?
腾讯云生成的密码常含@、/、:。这些在URL里是保留字!比如密码是abc@123,直接写redis://:abc@123@ip:6379会解析错——中间那个@会被当成分隔符。正确解法:URL编码。把@换成%40,/换成%2F,冒号换成%3A。工具?浏览器地址栏粘贴encodeURIComponent('abc@123')回车,秒出结果。 - 客户端是否启用SSL?
腾讯云Redis默认不启用SSL(除非你特意勾选“SSL加密”)。所以Spring Boot里spring.redis.ssl=true必须删掉,否则连都连不进TCP三次握手环节。
四、实战:Spring Boot 3.x 正确接入姿势
以最新稳定版Spring Boot 3.2 + Lettuce为例(Jedis已逐步淘汰,Lettuce支持响应式、连接池更健壮):
spring:
redis:
host: xxx-redis-12345.redis.rds.tencentcloud.com
port: 6379
password: abc%40123 # 注意:这里已URL编码!
database: 0
lettuce:
pool:
max-active: 20
max-idle: 10
min-idle: 0
max-wait: 1000ms
写个测试接口验证:
@RestController
public class RedisTestController {
@Autowired private StringRedisTemplate redisTemplate;
@GetMapping("/redis/test")
public String test() {
redisTemplate.opsForValue().set("hello", "腾讯云Redis真香");
return redisTemplate.opsForValue().get("hello");
}
}
启动,curl一下——如果返回腾讯云Redis真香,恭喜,你已突破新手结界。
五、那些年,我们踩过的坑
- “Connection timed out”不是网络问题,是安全组没放行:telnet不通,第一反应不是换服务器,而是查安全组入站规则是否生效、是否绑对了实例;
- “DENIED Redis is running in protected mode”?那是你在本地docker跑的Redis,不是腾讯云的:云Redis没有protected mode,此错误只出现在你误连了自己本机Docker里的Redis;
- 控制台显示“运行中”,但
redis-cli -h xxx -p 6379 -a pwd提示“NOAUTH”:说明密码错了,或未加-a参数。注意:Lettuce客户端不认requirepass指令,必须在配置里写死password; - 高并发下连接池打满?:别急着调大
max-active,先看监控里“连接数使用率”。腾讯云Redis连接数上限=实例规格×10(比如标准版2G实例,最大连接数20000)。超了会拒绝新连接,表现就是应用报“Cannot get Jedis connection”。
六、最后送你一句保命口诀
“一查地址,二看安全组,三验密码编码,四关SSL开关,五盯监控图表。”
腾讯云Redis配置,本质不是技术难题,而是习惯问题。每次连不上,按这五步走,99%的问题当场自愈。剩下1%,大概率是你把密码抄错了——建议复制粘贴,别手打。
好了,现在你可以关掉这篇,去控制台删掉那个试错用的Redis实例了(省钱)。下次再买,记得把本文收藏夹置顶。毕竟,省下的30分钟排查时间,够你多喝一杯冰美式,也够Redis多缓存10万次用户登录请求。

