深入了解node?中怎么使用redis集群功能【配置详解】

node中怎么使用redis集群功能?下面本篇文章给大家详解一下基于node的redis集群配置,希望对大家有所帮助!

深入了解node?中怎么使用redis集群功能【配置详解】

文章插图

关于nodejs中使用redis集群功能,没有找到一篇比较完整且通俗易懂的文章,因此自己在开发调试的过程中也走了不少弯路 。
本文会详细介绍了在本地如何搭建redis集群、在客户端如何使用集群、在搭建过程中遇到的问题和错误汇总并说明,以避免下次使用的时候再走弯路,提高开发、工作效率 。
使用集群的背景是:在Redis单例模式下随着用户量、访问量的提高,qps值急剧上涨??,大量的io操作导致某一时刻占满cpu(100%),随时有宕机的危险,同时通过批量处理redis等方式也是治标不治本,无法突破服务器性能的瓶颈 。 因此使用集群方案或增加redis实例就势在必行 。
名词解释--集群集群一般是指服务器集群,区别于分布式系统,是将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器 。 集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行 。 (在redis3.0之前一般使用的都是 哨兵模式,但 哨兵的配置略微复杂,并且性能和高可用性等各方面表现一般)
redis集群要求【深入了解node?中怎么使用redis集群功能【配置详解】】由于投票容错机制要求超过半数节点认为某个节点挂了该节点才是挂了,所以2个节点无法构成集群,因此Redis集群至少需要3个节点 。
要保证集群的高可用、需要每个节点都有从节点(也就是备份节点),所以Redis集群至少需要6台服务器 。 (三主三从、三存三取、高可用、可备份)
当然,我们在本地调试时不可能用这么多服务器,因此我们可以在本地模拟运行6个redis实例,事实上生产环境的Redis集群搭建和这里基本上一样 。
mac 环境下搭建本地redis集群1. 下载安装redis可以在官网选择安装,也可以用命名行安装
#安装brew install redis#启动redis-server#进入redis客户端redis-cli2. 通过redis配置集群环境首先要找到redis配置文件的位置
    brew list redis # 查看redis安装的位置cd /opt/homebrew/Cellar/redis/6.2.4 # 根据位置进入版本号所在的文件夹open . # 打开文件夹用Xcode.app打开homebrew.mxcl.redis.plist, 即可找到redis.conf所在的位置,如下所示:

深入了解node?中怎么使用redis集群功能【配置详解】

文章插图

深入了解node?中怎么使用redis集群功能【配置详解】

文章插图

创建六个服务配置文件
cd /opt/homebrew/etc/(上一步找到的配置文件目录)
# 需要在 /opt/homebrew/etc/ 路径下mkdir -p redis/cluster/7000mkdir -p redis/cluster/7001mkdir -p redis/cluster/7002mkdir -p redis/cluster/7003mkdir -p redis/cluster/7004mkdir -p redis/cluster/7005修改配置文件
/opt/homebrew/etc/redis.conf路径下的配置文件不用去修改, 只要将其copy到上面创建的 redis/cluster/7000目录下,然后再修改,步骤如下
    先复制一份配置文件修改
cd /opt/homebrew/etc/ # 进入配置文件目录cp redis.conf redis/cluster/7000/7000.confcode redis/cluster/7000/7000.conf # 用编辑器打开或者用vim打开配置文件来进行修改
    进入到7000.conf后,修改以下属性
# Redis端口号(7000-7005每个配置文件都要修改)port 7000 # 开启集群模式运行cluster-enabled yes # 集群内部配置文件配置文件路径,默认nodes-6379.conf(7000-7005每个配置文件都要修改)cluster-config-file nodes-7000.conf # 节点间通信的超时时间cluster-node-timeout 5000 # 数据持久化appendonly yes
    将7000.conf复制到每个redis服务的目录下
cd /opt/homebrew/etc/redis/cluster # 进入配置文件目录cp 7000/7000.conf 7001/7001.confcp 7000/7000.conf 7002/7002.confcp 7000/7000.conf 7003/7003.confcp 7000/7000.conf 7004/7004.confcp 7000/7000.conf 7005/7005.conf
    再修改7001.conf-7005.conf每个配置文件的port和cluster-config-file属性
注意:每个配置文件必需配置不一样的port和cluster-config-file值(否则集群不会生效),上面是以端口区分 。
通过find /opt/homebrew -name nodes-7000.conf命令可查找到该配置文件的目录

    推荐阅读