当前位置:首页 > 问答 > 正文

Redis集群带来的新机遇,开发端口号调整的那些事儿你了解吗

关于Redis集群带来的新机遇以及开发端口号调整的那些事儿,这个话题确实挺有意思的,咱们分开来聊,先说说Redis集群这个新东西带来了哪些不一样的机会,然后再讲讲端口号调整这个看似简单却可能藏着不少细节的操作。

第一部分:Redis集群带来的新机遇

以前我们用单个Redis服务器的时候,虽然速度快,但总会有点担心,怕它万一出故障了,整个用缓存的地方就跟着瘫痪了,数据也可能丢,当数据量特别大,或者同时访问的用户特别多的时候,一台机器可能就顶不住了,速度会慢下来,Redis集群的出现,就像是给咱们请来了一个可以分工协作的团队,而不是只靠一个能力超强但可能累垮的高手。

这个“团队”工作模式带来了几个实实在在的好处,最明显的是数据能分开放了(数据分片),你有一个超级大的数据集合,一台机器存不下,在集群里,你可以把这个大集合拆成很多小份,分别存放在不同的Redis节点上,每个节点只需要处理自己那一部分数据和对应的请求,这样压力就分散了,整体的处理能力和能存储的数据量就大大提升了,这就好比一个仓库放不下所有货,现在可以分到好几个仓库去存,每个仓库管理自己的区域,效率自然高。

也是非常重要的一点,就是可靠性提高了(高可用),在典型的Redis集群 setup(设置)中,每个存放数据的主节点,都会有一个或多个备用节点(从节点),平时备用节点就同步主节点的数据,一旦主节点因为网络问题或者机器故障不能工作了,集群会自动从备用节点里选出一个新的主节点来接替工作,这个过程是自动的,对于使用Redis的应用程序来说,可能只是感觉到一瞬间的卡顿,服务很快就恢复了,数据也不会丢失,这就解决了单点故障那个提心吊胆的问题,心里踏实多了。

集群模式也为系统的平滑扩展提供了便利,当业务量增长,发现现有的集群节点又不够用的时候,可以向集群里添加新的节点,然后通过一些管理命令,把一部分已经存在的的数据和访问压力迁移到新节点上,这个扩容过程可以在集群不停机的情况下进行,对线上服务的影响可以降到很低,这比单独维护一个巨大无比的Redis实例要灵活得多。

Redis集群带来的新机遇,核心就是用多台机器协作的方式,突破了单机在容量、性能和可靠性上的瓶颈,让Redis能够支撑更大规模、更高要求的业务场景。

第二部分:开发端口号调整的那些事儿

接下来我们聊聊端口号调整,在Redis的配置文件里(通常是redis.conf),有一个叫port的设置项,默认值是6379,为什么是6379呢?有种说法是它在手机键盘上对应着“MERZ”这几个字母,算是个趣谈,但在实际开发和部署中,我们经常需要改变这个默认端口。

调整端口号,首先一个最常见的原因就是安全考虑,用默认端口就像是把家门钥匙放在最常用的垫子下面,黑客们进行网络扫描的时候,会首先尝试连接那些知名服务的默认端口,比如Redis的6379,如果你把它改成一个不常用的、随机的大数字端口,就能在一定程度上减少被自动扫描工具发现和攻击的风险,这算是一个最基本的安全加固措施。

是为了在一台机器上运行多个Redis实例,有时候出于测试目的,或者需要不同应用使用不同的Redis环境(比如一个用于缓存,一个用于消息队列),但又没有多余的服务器,就可以在一台机器上启动多个Redis进程,每个进程必须监听不同的端口号,否则就会冲突,导致后启动的实例失败,这时候,通过给每个实例配置不同的port值,它们就能和平共处了。

调整端口号具体要怎么做呢?很简单,就是去修改redis.conf文件里的port这一行,把后面的数字改成你想要的端口号(比如6380),然后重启Redis服务,让配置生效,光改端口号还不够,防火墙规则一定要记得同步更新!你改了Redis的监听端口,防火墙原先允许访问6379端口的规则就失效了,必须在防火墙配置里放开你新设置的端口(如6380),否则应用程序会因为网络不通而无法连接到Redis。

还有一点需要注意,如果你的Redis配置了主从复制或者搭建了集群,那么端口号的修改会影响到节点之间的通信配置,在其他节点的配置里,凡是涉及到要连接这个改了端口的节点的地方,IP地址后面跟的端口号也要相应地改过来,从节点配置文件中指向主节点的replicaof命令,或者集群节点配置文件中的其他节点地址,都必须使用正确的新端口号,否则复制关系或集群网络就无法正常建立。

调整端口号这件事,看似只是改一个数字,但它牵扯到安全策略、多实例管理和集群配置的联动,操作的时候需要细心,改完后务必进行连接测试,确保所有相关的组件都能通过新的端口号正常通信。 来源:综合自Redis官方文档关于集群和高可用的说明、常见服务器安全实践指南以及分布式系统部署经验分享。)

Redis集群带来的新机遇,开发端口号调整的那些事儿你了解吗