목차
名词解释--集群
redis集群要求
mac 环境下搭建本地redis集群
1. 下载安装redis
2. 通过redis配置集群环境
클러스터를 사용하게 된 배경은 Redis 싱글톤 모드에서 사용자 수와 방문수가 증가함에 따라 qps 값이 급격하게 오르고?? 많은 양의 io 작업으로 인해 특정 순간에 가 가득 차면 >cpu(100%), 언제든지 다운타임이 발생할 위험이 있습니다. 동시에 redis 및 기타 방법의 일괄 처리는 증상만 치료할 뿐, 그렇지 않습니다. 근본 원인을 해결하고, 서버 성능의 병목 현상을 돌파할 수 없습니다. 따라서 클러스터 솔루션을 사용하거나 Redis 인스턴스를 추가하는 것이 필수적입니다.
용어 설명 - 클러스터
redis 클러스터 요구 사항
Mac 환경에서 로컬 Redis 클러스터 구축
4. 相关命令
客户端使用 ioredis 框架接入集群
使用bull框架(redis 队列)
问题处理
结语
웹 프론트엔드 JS 튜토리얼 노드에서 redis 클러스터 기능을 사용하는 방법 자세히 알아보기 [세부 구성]

노드에서 redis 클러스터 기능을 사용하는 방법 자세히 알아보기 [세부 구성]

Mar 30, 2022 pm 08:23 PM
node 레디스 클러스터

노드에서 Redis 클러스터 기능을 어떻게 사용하나요? 다음 글에서는 node 기반의 Redis 클러스터 구성에 대해 자세히 설명하겠습니다. 도움이 되셨으면 좋겠습니다!

노드에서 redis 클러스터 기능을 사용하는 방법 자세히 알아보기 [세부 구성]

nodejsnodejs中使用redis集群功能,没有找到一篇比较完整且通俗易懂的文章,因此自己在开发调试的过程中也走了不少弯路。

本文会详细介绍了在本地如何搭建redis集群、在客户端如何使用集群、在搭建过程中遇到的问题和错误汇总并说明,以避免下次使用的时候再走弯路,提高开发、工作效率。

使用集群的背景是:在Redis单例模式下随着用户量、访问量的提高,qps值急剧上涨??,大量的io操作导致某一时刻占满cpu(100%),随时有宕机的危险,同时通过批量处理redis等方式也是治标不治本,无法突破服务器性能的瓶颈。因此使用集群方案或增加redis实例就势在必行。

名词解释--集群

集群一般是指服务器集群,区别于分布式系统,是将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。(在redis3.0之前一般使用的都是 哨兵模式,但 哨兵的配置略微复杂,并且性能和高可用性等各方面表现一般)

redis集群要求

由于投票容错机制要求超过半数节点认为某个节点挂了该节点才是挂了,所以2个节点无法构成集群,因此Redis集群至少需要3个节点。

要保证集群的高可用、需要每个节点都有从节点(也就是备份节点),所以Redis集群至少需要6台服务器。 (三主三从、三存三取、高可用、可备份)

当然,我们在本地调试时不可能用这么多服务器,因此我们可以在本地模拟运行6个redis实例,事实上生产环境的Redis集群搭建和这里基本上一样。

mac 环境下搭建本地redis集群

1. 下载安装redis

可以在官网选择安装,也可以用命名行安装

#安装
brew install redis
#启动
redis-server
#进入redis客户端
redis-cli
로그인 후 복사

2. 通过redis配置集群环境

首先要找到redis配置文件的位置

  • brew list redis # 查看redis安装的位置
  • cd /opt/homebrew/Cellar/redis/6.2.4 # 根据位置进入版本号所在的文件夹
  • open . # 打开文件夹
  • Xcode.app打开homebrew.mxcl.redis.plist, 即可找到redis.conf所在的位置,如下所示:

노드에서 redis 클러스터 기능을 사용하는 방법 자세히 알아보기 [세부 구성]

노드에서 redis 클러스터 기능을 사용하는 방법 자세히 알아보기 [세부 구성]

创建六个服务配置文件

cd /opt/homebrew/etc/(上一步找到的配置文件目录)

# 需要在 /opt/homebrew/etc/ 路径下
mkdir -p redis/cluster/7000
mkdir -p redis/cluster/7001
mkdir -p redis/cluster/7002
mkdir -p redis/cluster/7003
mkdir -p redis/cluster/7004
mkdir -p redis/cluster/7005
로그인 후 복사

修改配置文件

/opt/homebrew/etc/redis.conf路径下的配置文件不用去修改, 只要将其copy到上面创建的 redis/cluster/7000目录下,然后再修改,步骤如下

  • 先复制一份配置文件修改
cd /opt/homebrew/etc/ # 进入配置文件目录
cp redis.conf redis/cluster/7000/7000.conf
code 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.conf
cp 7000/7000.conf 7002/7002.conf
cp 7000/7000.conf 7003/7003.conf
cp 7000/7000.conf 7004/7004.conf
cp 7000/7000.conf 7005/7005.conf
로그인 후 복사
  • 再修改7001.conf-7005.conf每个配置文件的port和cluster-config-file属性

注意:每个配置文件必需配置不一样的port和cluster-config-file值(否则集群不会生效),上面是以端口区分。

通过find /opt/homebrew -name nodes-7000.confredis 클러스터 기능 사용과 관련하여 비교적 완전하고 이해하기 쉬운 글을 찾지 못해서 여기에 있습니다. 개발과 디버깅 과정에서도 우회를 많이 했습니다. 이 글에서는

로컬에서 Redis 클러스터를 구축하는 방법, 클라이언트에서 클러스터를 사용하는 방법, 구축 과정에서 직면하는 문제와 오류
를 정리하고 설명하여 다음에 우회하지 않고 개선할 수 있도록 자세히 소개하겠습니다. 개발, 업무 효율성.

클러스터를 사용하게 된 배경은 Redis 싱글톤 모드에서 사용자 수와 방문수가 증가함에 따라 qps 값이 급격하게 오르고?? 많은 양의 io 작업으로 인해 특정 순간에 가 가득 차면 >cpu(100%), 언제든지 다운타임이 발생할 위험이 있습니다. 동시에 redis 및 기타 방법의 일괄 처리는 증상만 치료할 뿐, 그렇지 않습니다. 근본 원인을 해결하고, 서버 성능의 병목 현상을 돌파할 수 없습니다. 따라서 클러스터 솔루션을 사용하거나 Redis 인스턴스를 추가하는 것이 필수적입니다.

용어 설명 - 클러스터

클러스터는 일반적으로 서버 클러스터를 말하며, 분산 시스템과 달리 여러 개의 서버가 모여 있는 그룹입니다. 동일한 서비스를 제공하기 위해 함께 제공되는 서버는 하나인 것 같습니다. 클러스터는 병렬 컴퓨팅

높은 컴퓨팅 속도를 달성하려면 여러 대의 컴퓨터를 사용할 수도 있습니다 Backup🎜, 그러면 기계가 고장나도 전체 시스템이 계속 정상적으로 작동할 수 있습니다. (🎜redis3.0 이전에는 🎜 🎜Sentinel 모드를 많이 사용했지만 🎜 🎜Sentinel의 구성은 다소 복잡하고 성능이나 고가용성은 모든 면에서 평균 수준입니다 🎜)🎜

redis 클러스터 요구 사항

🎜투표 내결함성 메커니즘에서는 노드가 다운되었다고 생각하기 위해 노드의 절반 이상이 필요하므로 노드가 다운되어 2개의 노드가 클러스터를 형성할 수 없으므로 Redis 클러스터에는 최소 3개가 필요합니다. 노드. 🎜🎜클러스터의 고가용성을 보장하려면 각 노드에 슬레이브 노드(즉, 백업 노드)가 있어야 하므로 Redis 클러스터에는 최소 6개의 서버가 필요합니다. 🎜(3개의 마스터와 3개의 슬레이브, 3개의 입금과 3개의 검색, 고가용성, 백업)🎜🎜🎜물론 로컬에서 디버깅할 때 너무 많은 서버를 사용하는 것은 불가능하므로 6개의 redis< 실행을 시뮬레이션할 수 있습니다. / code>예제, 🎜사실 프로덕션 환경의 Redis 클러스터 설정은 기본적으로 여기와 같습니다. 🎜🎜<h2 id="Mac-환경에서-로컬-Redis-클러스터-구축">Mac 환경에서 로컬 Redis 클러스터 구축</h2><h3 data-id="heading-4">🎜1 redis를 다운로드하고 설치할 수 있습니다🎜🎜🎜 공식 웹사이트에서 설치를 선택하고 명명된 라인을 사용하여 install🎜<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'># start.sh 文件 #!/bin/sh redis-server /opt/homebrew/etc/redis/cluster/7000/7000.conf &amp; redis-server /opt/homebrew/etc/redis/cluster/7001/7001.conf &amp; redis-server /opt/homebrew/etc/redis/cluster/7002/7002.conf &amp; redis-server /opt/homebrew/etc/redis/cluster/7003/7003.conf &amp; redis-server /opt/homebrew/etc/redis/cluster/7004/7004.conf &amp; redis-server /opt/homebrew/etc/redis/cluster/7005/7005.conf &amp; # stop.sh 文件 #!/bin/sh redis-cli -p 7000 shutdown &amp; redis-cli -p 7001 shutdown &amp; redis-cli -p 7002 shutdown &amp; redis-cli -p 7003 shutdown &amp; redis-cli -p 7004 shutdown &amp; redis-cli -p 7005 shutdown &amp;</pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><h3 data-id="heading-5">🎜2할 수도 있습니다. redis🎜🎜🎜🎜를 통해 클러스터 환경을 구성합니다. redis 구성 파일🎜🎜<ul><li> <code>brew list redis # redis 설치 위치 확인
  • cd /opt/homebrew/Cellar/redis/6.2. 4 # 위치에 따라 버전 번호를 입력하세요. 폴더
  • open .# 폴더 열기
  • Xcode.app< 사용 /code>를 사용하여 <code>homebrew.mxcl.redis .plist를 열면 아래와 같이 redis.conf의 위치를 ​​찾을 수 있습니다.
  • 🎜 노드에서 redis 클러스터 기능을 사용하는 방법 자세히 알아보기 [세부 구성]🎜🎜노드에서 redis 클러스터 기능을 사용하는 방법 자세히 알아보기 [세부 구성]🎜🎜🎜6개의 서비스 구성 파일 생성 🎜🎜🎜cd /opt/homebrew/ etc/(이전 단계에서 찾은 구성 파일 디렉터리)🎜
    redis-cli -p 7000 # 单个客户端启动
    redis-server 7000/7000.conf  # 启动单个服务端
    redis-cli -p 7000 shutdown # 关闭服务端
    sudo chmod +x start.sh # 开启脚本执行权限
    
    # 设置redis主从关系(三主三从)
    redis-cli --cluster create  --cluster-replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
    
    cluster nodes #查看集群节点情况(进入某个客户端执行)
    cluster info #查看集群信息(进入某个客户端执行)
    
    查看所有key值:keys *
    
    删除指定索引的值:del key
    
    清空整个 Redis 服务器的数据:flushall 
    
    清空当前库中的所有 key:flushdb
    로그인 후 복사
    로그인 후 복사
    🎜🎜구성 파일을 수정하세요🎜🎜🎜/경로 아래의 구성 파일 opt/homebrew/etc/redis.conf는 수정할 필요가 없으며, 위에서 생성한 redis/cluster/7000 디렉터리에 복사한 후 수정하면 됩니다. 다음과 같습니다🎜
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

    핫 AI 도구

    Undresser.AI Undress

    Undresser.AI Undress

    사실적인 누드 사진을 만들기 위한 AI 기반 앱

    AI Clothes Remover

    AI Clothes Remover

    사진에서 옷을 제거하는 온라인 AI 도구입니다.

    Undress AI Tool

    Undress AI Tool

    무료로 이미지를 벗다

    Clothoff.io

    Clothoff.io

    AI 옷 제거제

    AI Hentai Generator

    AI Hentai Generator

    AI Hentai를 무료로 생성하십시오.

    인기 기사

    R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
    3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. 최고의 그래픽 설정
    3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
    3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
    1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

    뜨거운 도구

    메모장++7.3.1

    메모장++7.3.1

    사용하기 쉬운 무료 코드 편집기

    SublimeText3 중국어 버전

    SublimeText3 중국어 버전

    중국어 버전, 사용하기 매우 쉽습니다.

    스튜디오 13.0.1 보내기

    스튜디오 13.0.1 보내기

    강력한 PHP 통합 개발 환경

    드림위버 CS6

    드림위버 CS6

    시각적 웹 개발 도구

    SublimeText3 Mac 버전

    SublimeText3 Mac 버전

    신 수준의 코드 편집 소프트웨어(SublimeText3)

    nvm에서 노드를 삭제하는 방법 nvm에서 노드를 삭제하는 방법 Dec 29, 2022 am 10:07 AM

    nvm을 사용하여 노드를 삭제하는 방법: 1. "nvm-setup.zip"을 다운로드하여 C 드라이브에 설치합니다. 2. "nvm -v" 명령을 통해 환경 변수를 구성하고 버전 번호를 확인합니다. install" 명령 노드 설치; 4. "nvm uninstall" 명령을 통해 설치된 노드를 삭제합니다.

    Express를 사용하여 노드 프로젝트에서 파일 업로드를 처리하는 방법 Express를 사용하여 노드 프로젝트에서 파일 업로드를 처리하는 방법 Mar 28, 2023 pm 07:28 PM

    파일 업로드를 처리하는 방법은 무엇입니까? 다음 글에서는 Express를 사용하여 노드 프로젝트에서 파일 업로드를 처리하는 방법을 소개하겠습니다. 도움이 되길 바랍니다.

    Node의 프로세스 관리 도구 'pm2”에 대한 심층 분석 Node의 프로세스 관리 도구 'pm2”에 대한 심층 분석 Apr 03, 2023 pm 06:02 PM

    이 기사에서는 Node의 프로세스 관리 도구인 "pm2"를 공유하고 pm2가 필요한 이유, pm2 설치 및 사용 방법에 대해 설명합니다. 모두에게 도움이 되기를 바랍니다!

    PI 노드 교육 : PI 노드 란 무엇입니까? Pi 노드를 설치하고 설정하는 방법은 무엇입니까? PI 노드 교육 : PI 노드 란 무엇입니까? Pi 노드를 설치하고 설정하는 방법은 무엇입니까? Mar 05, 2025 pm 05:57 PM

    Pinetwork 노드에 대한 자세한 설명 및 설치 안내서이 기사에서는 Pinetwork Ecosystem을 자세히 소개합니다. Pi 노드, Pinetwork 생태계의 주요 역할을 수행하고 설치 및 구성을위한 전체 단계를 제공합니다. Pinetwork 블록 체인 테스트 네트워크가 출시 된 후, PI 노드는 다가오는 주요 네트워크 릴리스를 준비하여 테스트에 적극적으로 참여하는 많은 개척자들의 중요한 부분이되었습니다. 아직 Pinetwork를 모른다면 Picoin이 무엇인지 참조하십시오. 리스팅 가격은 얼마입니까? PI 사용, 광업 및 보안 분석. Pinetwork 란 무엇입니까? Pinetwork 프로젝트는 2019 년에 시작되었으며 독점적 인 Cryptocurrency Pi Coin을 소유하고 있습니다. 이 프로젝트는 모든 사람이 참여할 수있는 사람을 만드는 것을 목표로합니다.

    pkg를 사용하여 Node.js 프로젝트를 실행 파일로 패키징하는 방법에 대해 이야기해 보겠습니다. pkg를 사용하여 Node.js 프로젝트를 실행 파일로 패키징하는 방법에 대해 이야기해 보겠습니다. Dec 02, 2022 pm 09:06 PM

    nodejs 실행 파일을 pkg로 패키징하는 방법은 무엇입니까? 다음 기사에서는 pkg를 사용하여 Node 프로젝트를 실행 파일로 패키징하는 방법을 소개합니다. 도움이 되기를 바랍니다.

    npm node gyp가 실패하는 경우 수행할 작업 npm node gyp가 실패하는 경우 수행할 작업 Dec 29, 2022 pm 02:42 PM

    "node-gyp.js"와 "Node.js"의 버전이 일치하지 않아 npm node gyp가 실패했습니다. 해결 방법: 1. "npm 캐시 clean -f"를 통해 노드 캐시를 지웁니다. 2. "npm install - g n" n 모듈을 설치합니다. 3. "n v12.21.0" 명령을 통해 "node v12.21.0" 버전을 설치합니다.

    싱글 사인온(SSO) 시스템이란 무엇입니까? nodejs를 사용하여 구현하는 방법은 무엇입니까? 싱글 사인온(SSO) 시스템이란 무엇입니까? nodejs를 사용하여 구현하는 방법은 무엇입니까? Feb 24, 2023 pm 07:33 PM

    싱글 사인온(SSO) 시스템이란 무엇입니까? nodejs를 사용하여 구현하는 방법은 무엇입니까? 다음 글에서는 Node를 사용하여 Single Sign-On 시스템을 구현하는 방법을 소개하겠습니다. 도움이 되길 바랍니다.

    Angular 및 Node를 사용한 토큰 기반 인증 Angular 및 Node를 사용한 토큰 기반 인증 Sep 01, 2023 pm 02:01 PM

    인증은 모든 웹 애플리케이션에서 가장 중요한 부분 중 하나입니다. 이 튜토리얼에서는 토큰 기반 인증 시스템과 기존 로그인 시스템과의 차이점에 대해 설명합니다. 이 튜토리얼이 끝나면 Angular와 Node.js로 작성된 완벽하게 작동하는 데모를 볼 수 있습니다. 기존 인증 시스템 토큰 기반 인증 시스템으로 넘어가기 전에 기존 인증 시스템을 살펴보겠습니다. 사용자는 로그인 양식에 사용자 이름과 비밀번호를 입력하고 로그인을 클릭합니다. 요청한 후 데이터베이스를 쿼리하여 백엔드에서 사용자를 인증합니다. 요청이 유효하면 데이터베이스에서 얻은 사용자 정보를 이용하여 세션을 생성하고, 세션 정보를 응답 헤더에 반환하여 브라우저에 세션 ID를 저장한다. 다음과 같은 애플리케이션에 대한 액세스를 제공합니다.

    See all articles