温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

迁Aliyun Redis遇到的坑分析

发布时间:2021-11-15 15:39:08 来源:亿速云 阅读:129 作者:iii 栏目:大数据

这篇文章主要介绍“迁Aliyun Redis遇到的坑分析”,在日常操作中,相信很多人在迁Aliyun Redis遇到的坑分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”迁Aliyun Redis遇到的坑分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

背景:

从自建 redis(CacheCloud)到迁移到 aliyun redis

1. 踩“坑”一

问题:
平常小伙伴们在项目中可能用到redis key expire nofity的场景(比如:处理延时任务等),但是发现迁移后 key 过期通知总是比未迁移之前的时间慢一个数量级(基本上分钟级别,社区版基本上秒级别),及时在很少的 key 情况也是一样的;之前也和 aliyun support 小伙伴沟通过,给出反馈都一个星期多了~
定位:
了解过 redis 的过期策略以及淘汰策略的小伙伴,应该都知道针对惰性删除测试,是遍历整个 db,随机选取 20 个 key(默认),淘汰;但是,aliyun redis(使用的是 4.x 版本)的默认 db 数是 256(社区版的是 16)
解决:
调整项目 redis db 数为16

2. 踩“坑”二

问题:
迁移后的 redis,在域名(aliyun redis 针对社区版的主从,哨兵,集群模式等暴露出一个域名)指向 ip 发生变化的时候,客户端通过域名访问的时候,依然解析指向的是老的 ip,导致连接不上 redis~
定位:
查看 JedisConnectionFactory 的源码可以发现(以集群为例),在初始化 afterPropertiesSet 时,已经将域名解析成对应的 ip 缓存起来了,故之后域名切换 ip 后,依然访问的是之前的 ip

private JedisCluster createCluster() {

		JedisCluster cluster = createCluster(this.clusterConfig, getPoolConfig());
		JedisClusterConnection.JedisClusterTopologyProvider topologyProvider = new JedisClusterConnection.JedisClusterTopologyProvider(cluster);
		this.clusterCommandExecutor = new ClusterCommandExecutor(topologyProvider,
				new JedisClusterConnection.JedisClusterNodeResourceProvider(cluster, topologyProvider), EXCEPTION_TRANSLATION);
		return cluster;
	}

迁Aliyun Redis遇到的坑分析

解决:
切换域名 ip 后重启服务

到此,关于“迁Aliyun Redis遇到的坑分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI