>  기사  >  데이터 베이스  >  Windows에서 Redis 클러스터를 구축하는 방법

Windows에서 Redis 클러스터를 구축하는 방법

王林
王林앞으로
2021-03-05 09:28:561997검색

Windows에서 Redis 클러스터를 구축하는 방법

서문:

클러스터링은 안정적이고 효율적인 상태를 달성하기 위해 서버 수를 추가하여 동일한 서비스를 제공하는 것을 의미합니다. Redis 클러스터를 사용하는 이유는 무엇입니까? Redis 클러스터는 Redis의 읽기 및 쓰기 기능을 향상시킬 수 있습니다.

이제 정식으로 Redis 클러스터에 대해 알아봅시다.

준비 작업:

4가지 구성 요소가 필요합니다: Redis, Ruby 언어 런타임 환경, Redis Ruby 드라이버 redis-xxxx.gem 및 Redis 클러스터 redis-trib.rb 생성 도구. Redis-trib.rb 도구를 사용하여 Redis 클러스터를 생성합니다. 이 파일은 Ruby 언어로 작성되어 있으므로 Ruby 개발 환경을 설치하고 redis-xxxx.gem을 드라이브해야 합니다.

Windows에서 Redis 클러스터를 구축하는 방법

1) Redis 설치 파일 다운로드: https://github.com/MSOpenTech/redis/releases/ Redis는 msi 및 zip 형식의 다운로드 파일을 제공합니다. Redis-x64-3.2.100 버전. 여기.

2) Ruby 설치 파일 다운로드: http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.2.4-x64.exe

3) Ruby 환경에서 Redis 드라이버 다운로드: https:// rubygems.org/gems/redis/versions/3.2.2, 호환성을 고려하여 여기서 다운로드되는 것은 버전 3.2.2

입니다. 참고: 페이지 오른쪽 하단에 있는 관련 링크에서 다운로드하세요

Windows에서 Redis 클러스터를 구축하는 방법

4) Redis 공식 버전 다운로드 Redis 클러스터를 생성하는 Ruby 스크립트 파일 redis-trib.rb, 경로는 다음과 같습니다: https://raw.githubusercontent.com/MSOpenTech/redis/3.0/src/redis-trib.rb

Redis 설치

는 Redis-x64-3.2.100.zip의 압축을 풀고 다운로드됩니다. 사용 편의성을 위해 D:Redis-ClusterRedis와 같은 드라이브 문자의 루트 디렉터리에 배치하는 것이 좋습니다. -x64-3.2.100.

Redis를 설치하고 3개의 인스턴스를 실행합니다(Redis 클러스터에는 최소 3개의 노드가 필요하며, 3개 미만은 생성할 수 없습니다).

구성 파일을 통해 6개의 다른 Redis 인스턴스를 시작합니다. Redis의 기본 포트는 6379이므로 여기서는 6380입니다. 6381, 6382, 6383, 6384, 6385는 6개의 Redis 인스턴스를 실행하는 데 사용됩니다.

참고:

(1) 불필요한 오류를 방지하려면 구성 파일을 utf8 형식으로 저장해야 하며 주석을 포함하지 않아야 합니다.

(2) 구성 파일에 로그를 저장하는 방법에는 두 가지가 있습니다. 파일, 시스템 로그에 저장) 필요에 따라 둘 중 하나를 선택하십시오:

loglevel notice    #日志的记录级别,notice是适合生产环境的
logfile "D:/Redis-Cluster/Redis-x64-3.2.100/Logs/redis6380_log.txt" #指定log的保持路径,默认是创建在Redis安装目录下,如果有子目录需要手动创建,如此处的Logs目录
syslog-enabled yes    #是否使用系统日志   
syslog-ident redis6380    #在系统日志的标识名

여기서는 파일에 저장하는 방법을 사용하므로 먼저 Redis 디렉터리 D:Redis-ClusterRedis-x64- 아래에 새 Logs 폴더를 만듭니다. 3.2.100 .

Redis 설치 루트 디렉터리에서 인코딩 형식 utf-8(redis.6380.conf, redis.6381.conf, redis.6382.conf, redis.6383.conf, redis.6384.conf, redis)을 사용하여 구성 파일을 만듭니다. .6385.conf.

redis.6380.conf,

port 6380      
loglevel notice    
logfile "D:/Redis-Cluster/Redis-x64-3.2.100/Logs/redis6380_log.txt"       
appendonly yes
appendfilename "appendonly.6380.aof"   
cluster-enabled yes                                    
cluster-config-file nodes.6380.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

redis.6381.conf,

port 6381       
loglevel notice   
logfile "D:/Redis-Cluster/Redis-x64-3.2.100/Logs/redis6381_log.txt"       
appendonly yes
appendfilename "appendonly.6381.aof"    
cluster-enabled yes                                    
cluster-config-file nodes.6381.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

redis.6382.conf,

port 6382       
loglevel notice    
logfile "D:/Redis-Cluster/Redis-x64-3.2.100/Logs/redis6382_log.txt"         
appendonly yes
appendfilename "appendonly.6382.aof"    
cluster-enabled yes                                    
cluster-config-file nodes.6382.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

redis.6383.conf,

port 6383       
loglevel notice    
logfile "D:/Redis-Cluster/Redis-x64-3.2.100/Logs/redis6383_log.txt"         
appendonly yes
appendfilename "appendonly.6383.aof"    
cluster-enabled yes                                    
cluster-config-file nodes.6383.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

redis.6384.conf,

port 6384       
loglevel notice    
logfile "D:/Redis-Cluster/Redis-x64-3.2.100/Logs/redis6384_log.txt"         
appendonly yes
appendfilename "appendonly.6384.aof"    
cluster-enabled yes                                    
cluster-config-file nodes.6384.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

redis.6385.conf

port 6385       
loglevel notice    
logfile "D:/Redis-Cluster/Redis-x64-3.2.100/Logs/redis6385_log.txt"         
appendonly yes
appendfilename "appendonly.6385.aof"    
cluster-enabled yes                                    
cluster-config-file nodes.6385.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

(동영상 공유 학습: redis 동영상 튜토리얼)

구성은 다음과 같이 설명됩니다.

port 6380                                 #端口号
loglevel notice                           #日志的记录级别,notice是适合生产环境的
logfile "Logs/redis6380_log.txt"          #指定log的保持路径,默认是创建在Redis安装目录下,如果有子目录需要手动创建,如此处的Logs目录
syslog-enabled yes                        #是否使用系统日志
syslog-ident redis6380                    #在系统日志的标识名
appendonly yes                            #数据的保存为aof格式
appendfilename "appendonly.6380.aof"      #数据保存文件
cluster-enabled yes                       #是否开启集群
cluster-config-file nodes.6380.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

위 구성 파일을 Redis 디렉토리에 저장하고 이 구성 파일을 사용하여 6 Redis 서비스를 설치하는 경우 명령은 다음과 같습니다.

D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-install D:/Redis-Cluster/Redis-x64-3.2.100/redis.6380.conf --service-name redis6380
D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-install D:/Redis-Cluster/Redis-x64-3.2.100/redis.6381.conf --service-name redis6381
D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-install D:/Redis-Cluster/Redis-x64-3.2.100/redis.6382.conf --service-name redis6382
D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-install D:/Redis-Cluster/Redis-x64-3.2.100/redis.6383.conf --service-name redis6383
D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-install D:/Redis-Cluster/Redis-x64-3.2.100/redis.6384.conf --service-name redis6384
D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-install D:/Redis-Cluster/Redis-x64-3.2.100/redis.6385.conf --service-name redis6385

참고:

1) Redis 클러스터를 다시 시작할 때 문제를 방지하려면 redis.6380.conf와 같은 구성 파일의 전체 경로를 사용하는 것이 가장 좋습니다.

2) 제거 명령은 다음과 같습니다.

D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-uninstall D:/Redis-Cluster/Redis-x64-3.2.100/redis.6380.conf --service-name redis6380
D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-uninstall D:/Redis-Cluster/Redis-x64-3.2.100/redis.6381.conf --service-name redis6381
D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-uninstall D:/Redis-Cluster/Redis-x64-3.2.100/redis.6382.conf --service-name redis6382
D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-uninstall D:/Redis-Cluster/Redis-x64-3.2.100/redis.6383.conf --service-name redis6383
D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-uninstall D:/Redis-Cluster/Redis-x64-3.2.100/redis.6384.conf --service-name redis6384
D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-uninstall D:/Redis-Cluster/Redis-x64-3.2.100/redis.6385.conf --service-name redis6385

Start this 6 services, 명령은 다음과 같습니다.

D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-start --service-name redis6380
D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-start --service-name redis6381
D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-start --service-name redis6382
D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-start --service-name redis6383
D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-start --service-name redis6384
D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-start --service-name redis6385

실행 결과:

Windows에서 Redis 클러스터를 구축하는 방법

Ruby 설치

(1) Ruby 환경 설치.

다운로드한 "rubyinstaller-2.2.4-x64.exe"를 두 번 클릭하여 설치합니다. 마찬가지로, 간편한 작동을 위해 C:Ruby22와 같은 드라이브 문자의 루트 디렉터리에 설치하는 것이 좋습니다. -x64. 설치 중 마지막 2개를 선택하세요. 옵션

Windows에서 Redis 클러스터를 구축하는 방법

은 시스템의 환경 변수에 ruby를 추가한다는 의미이며 cmd 명령에서 직접 ruby ​​명령을 사용할 수 있습니다

(1) Ruby 환경의 Redis 드라이버

다운받은 "Ruby 환경 Redis 드라이버 파일(redis-3.2.2.gem)을 Ruby 설치 루트 디렉터리(C:Ruby22-x64)에 복사합니다.

그런 다음 다음과 같이 설치 명령을 실행합니다.

gem install --local path_to_gem/filename.gem

Windows에서 Redis 클러스터를 구축하는 방법

Redis 클러스터 생성

다운로드한 "ruby 스크립트 파일 redis-trib.rb를 사용하여 Redis 클러스터 생성"을 Redis 설치 루트 디렉터리(D:Redis)에 복사합니다. -ClusterRedis- x64-3.2.100).

(1) redis-trib.rb를 사용하여 Redis 클러스터를 생성합니다.

MD 아래의 Redis 디렉터리로 전환합니다(D:Redis-ClusterRedis-x64-3.2.100)

D:/Redis-Cluster/Redis-x64 -3.2 .100/redis-trib.rb create --replicas 1 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6385

D:\Redis-Cluster\Redis-x64-3.2.100>redis-trib.rb create --replicas 1 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385
>>> Creating cluster
Connecting to node 127.0.0.1:6380: OK
Connecting to node 127.0.0.1:6381: OK
Connecting to node 127.0.0.1:6382: OK
Connecting to node 127.0.0.1:6383: OK
Connecting to node 127.0.0.1:6384: OK
Connecting to node 127.0.0.1:6385: OK
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
127.0.0.1:6380
127.0.0.1:6381
127.0.0.1:6382
Adding replica 127.0.0.1:6383 to 127.0.0.1:6380
Adding replica 127.0.0.1:6384 to 127.0.0.1:6381
Adding replica 127.0.0.1:6385 to 127.0.0.1:6382
M: bb6ef615bb0ae13275943caec0db9d30b9f35c5e 127.0.0.1:6380   slots:0-5460      (5461 slots) master
M: b4d120f2983ad683f7b68992e1ba414722238db7 127.0.0.1:6381   slots:5461-10922  (5462 slots) master
M: 837779b3965e2c9d4dd4385750aaaaf9a9039fb0 127.0.0.1:6382   slots:10923-16383 (5461 slots) master
S: 5d154137180284d926ef51a91fc75f9438249ef8 127.0.0.1:6383   replicates bb6ef615bb0ae13275943caec0db9d30b9f35c5e
S: ad151680a3e36cf2083ef822be0bdb075a7d36de 127.0.0.1:6384   replicates b4d120f2983ad683f7b68992e1ba414722238db7
S: 9a2260a5a6a2add84b622a453a6a7b86a29d180d 127.0.0.1:6385   replicates 837779b3965e2c9d4dd4385750aaaaf9a9039fb0
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join...
>>> Performing Cluster Check (using node 127.0.0.1:6380)M: bb6ef615bb0ae13275943caec0db9d30b9f35c5e 127.0.0.1:6380   slots:0-5460      (5461 slots) master
M: b4d120f2983ad683f7b68992e1ba414722238db7 127.0.0.1:6381   slots:5461-10922  (5462 slots) master
M: 837779b3965e2c9d4dd4385750aaaaf9a9039fb0 127.0.0.1:6382   slots:10923-16383 (5461 slots) master
M: 5d154137180284d926ef51a91fc75f9438249ef8 127.0.0.1:6383   slots:            (0 slots)    master   replicates bb6ef615bb0ae13275943caec0db9d30b9f35c5e
M: ad151680a3e36cf2083ef822be0bdb075a7d36de 127.0.0.1:6384   slots:            (0 slots)    master   replicates b4d120f2983ad683f7b68992e1ba414722238db7
M: 9a2260a5a6a2add84b622a453a6a7b86a29d180d 127.0.0.1:6385   slots:            (0 slots)    master   replicates 837779b3965e2c9d4dd4385750aaaaf9a9039fb0
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

비고:

(1)--replicas #指定集群中每个主节点配备几个从节点,这里设置为1。

(2)redis-trib.rb工具的使用

、create:创建集群
、check:检查集群
、info:查看集群信息
、fix:修复集群
、reshard:在线迁移slot
、rebalance:平衡集群节点slot数量
、add-node:将新节点加入集群
、del-node:从集群中删除节点
、set-timeout:设置集群节点间心跳连接的超时时间
、call:在集群全部节点上执行命令
、import:将外部redis数据导入集群

(2)检验是否真的创建成功

输入以下命令:

redis-trib.rb check 127.0.0.1:6380

如果现实信息如下,则说明创建的Redis集群是没问题。

D:\Redis-Cluster\Redis-x64-3.2.100>redis-trib.rb check 127.0.0.1:6380
Connecting to node 127.0.0.1:6380: OK
Connecting to node 127.0.0.1:6383: OK
Connecting to node 127.0.0.1:6382: OK
Connecting to node 127.0.0.1:6384: OK
Connecting to node 127.0.0.1:6385: OK
Connecting to node 127.0.0.1:6381: OK
>>> Performing Cluster Check (using node 127.0.0.1:6380)
M: bb6ef615bb0ae13275943caec0db9d30b9f35c5e 127.0.0.1:6380   slots:0-5460      (5461 slots) master   1 additional replica(s)
S: 5d154137180284d926ef51a91fc75f9438249ef8 127.0.0.1:6383   slots:            (0 slots)    slave    replicates bb6ef615bb0ae13275943caec0db9d30b9f35c5e
M: 837779b3965e2c9d4dd4385750aaaaf9a9039fb0 127.0.0.1:6382   slots:10923-16383 (5461 slots) master   1 additional replica(s)
S: ad151680a3e36cf2083ef822be0bdb075a7d36de 127.0.0.1:6384   slots:            (0 slots)    slave    replicates b4d120f2983ad683f7b68992e1ba414722238db7
S: 9a2260a5a6a2add84b622a453a6a7b86a29d180d 127.0.0.1:6385   slots:            (0 slots)    slave    replicates 837779b3965e2c9d4dd4385750aaaaf9a9039fb0
M: b4d120f2983ad683f7b68992e1ba414722238db7 127.0.0.1:6381   slots:5461-10922  (5462 slots) master   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

D:\Redis-Cluster\Redis-x64-3.2.100>

(3)信息查询

使用Redis客户端Redis-cli.exe来查看数据记录数,以及集群相关信息

Windows에서 Redis 클러스터를 구축하는 방법

原文作者:cctext

原文链接:https://www.cnblogs.com/yy3b2007com/p/11033009.html

相关推荐:redis数据库教程

위 내용은 Windows에서 Redis 클러스터를 구축하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제