安装redis集群(cluster)

1、3主3从需要用3台服务器分别下载redis安装包并编译:

(3台服务器IP分别为192.168.1.1、192.168.1.2、192.168.1.3)

(虽然2台服务器也可以实现3主3从,但是一旦一台挂了另1台无法接管)

wget http://download.redis.io/releases/redis-3.2.8.tar.gz
cd /usr/local
tar zxvf /root/redis-3.2.8.tar.gz
cd redis-3.2.8
make

2、安装ruby和rubygems:

在虚拟机上创建2个光驱,将ContOS的2张安装盘同时插入。

yum install ruby
yum install rubygems

验证安装

ruby -v
gem -v

3、下载安装redis-3.3.3.gem

wget https://rubygems.org/downloads/redis-3.3.3.gem
gem install -l redis-3.3.3.gem

4、修改配置文件redis.conf

(redis监听端口建议不要使用默认端口)

vim redis.conf
#与目录名相同
port 4321
bind 192.168.1.1 127.0.0.1
daemonize yes
#与目录名相同
pidfile /var/run/redis_4321.pid
#与目录名相同
dir /usr/local/redis-cluster/4321/
cluster-enabled yes
#与目录名相同
cluster-config-file nodes-4321.conf
cluster-node-timeout 15000
appendonly yes

5、创建cluster目录

mkdir redis-cluster

在每台服务器的cluster目录中创建2个节点目录并分别将redis.conf拷贝进去

注意修改端口号等参数

cd redis-cluster
mkdir 4321 4322
cp -a ../redis-3.2.8/redis.conf 4321
cp -a ../redis-3.2.8/redis.conf 4322
cd redis-cluster
mkdir 4323 4324
cp -a ../redis-3.2.8/redis.conf 4323
cp -a ../redis-3.2.8/redis.conf 4324
cd redis-cluster
mkdir 4325 4326
cp -a ../redis-3.2.8/redis.conf 4325
cp -a ../redis-3.2.8/redis.conf 4326

6、将Redis的命令所在目录添加到系统参数PATH中,这样就可以直接调用redis- cli的命令了

vim /etc/profile

在最后行添加

export PATH="$PATH:/usr/local/redis-3.2.8/src"

应用/etc/profile

. /etc/profile

7、运行redis,检查状态(以第1台为例)

redis-server /usr/local/redis-cluster/4321/redis.conf
redis-server /usr/local/redis-cluster/4322/redis.conf
ps -ef|grep redis
root      2304     1  0 14:00 ?        00:00:00 redis-server 192.168.1.1:4321 [cluster]
root      2308     1  0 14:00 ?        00:00:00 redis-server 192.168.1.1:4322 [cluster]
root      2328  2022  0 14:01 pts/0    00:00:00 grep redis
netstat -ntlp | grep redis
tcp        0      0 127.0.0.1:4321              0.0.0.0:*                   LISTEN      2304/redis-server 1 
tcp        0      0 192.168.1.1:4321        0.0.0.0:*                   LISTEN      2304/redis-server 1 
tcp        0      0 127.0.0.1:4322              0.0.0.0:*                   LISTEN      2308/redis-server 1 
tcp        0      0 192.168.1.1:4322        0.0.0.0:*                   LISTEN      2308/redis-server 1 
tcp        0      0 127.0.0.1:14321             0.0.0.0:*                   LISTEN      2304/redis-server 1 
tcp        0      0 192.168.1.1:14321       0.0.0.0:*                   LISTEN      2304/redis-server 1 
tcp        0      0 127.0.0.1:14322             0.0.0.0:*                   LISTEN      2308/redis-server 1 
tcp        0      0 192.168.1.1:14322       0.0.0.0:*                   LISTEN      2308/redis-server 1 

8、拷贝脚本到/usr/local/bin(前边加过环境变量,这步可能不用加了)

cd /usr/local/redis-3.2.8/src
cp -a redis-trib.rb /usr/local/bin

9、创建集群

首先确保所有6个redis都为运行状态(replicas 后面的数字表示每个M带几个S)

redis-trib.rb create --replicas 1 192.168.1.1:4321 192.168.1.1:4322 192.168.1.2:4323 192.168.1.2:4324 192.168.1.3:4325 192.168.1.3:4326

这种形式是表示自动创建6个节点,其中每个master对应一个slave,但是它并不会把所有master放在同一个机器上,有可能是一台服务器上有1个master另一台服务器上有2个master。


10、检查集群状态

[root@redis_master ~]# redis-trib.rb check 192.168.1.1:4321
>>> Performing Cluster Check (using node 192.168.1.1:4321)
S: 6e6f34c757ac1c737a525b1ebd7e0eeae9aafd12 192.168.1.2:4324
   slots: (0 slots) slave
   replicates dbab8fc86a94c401cf416a2118822233d450f45d
S: 80040996265e373d1e11872826926a258ca3aa4e 192.168.1.3:4326
   slots: (0 slots) slave
   replicates c53e29060bbd432477e17f89b41730d5c67994ec
M: dbab8fc86a94c401cf416a2118822233d450f45d 192.168.1.1:4321
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: c83cc3af562dd5e94e1c4ee0122bc11c35eb5605 192.168.1.1:4322
   slots: (0 slots) slave
   replicates 9017cfd0de753a7b75244d31febf7d45232feed0
M: 9017cfd0de753a7b75244d31febf7d45232feed0 192.168.1.3:4325
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
M: c53e29060bbd432477e17f89b41730d5c67994ec 192.168.1.2:4323
   slots:10923-16383 (5461 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.

11、密码

每个节点的redis.conf中要配置2处密码,重启生效。

masterauth ABcd12#$ 
requirepass ABcd12#$  

配置密码后redis-trib.rb命令会报错,要在redis-trib.rb配置文件中配置密码。

[root@localhost ~]# vim /usr/local/share/gems/gems/redis-3.3.3/lib/redis/client.rb
    DEFAULTS = {
      :url => lambda { ENV["REDIS_URL"] },
      :scheme => "redis",
      :host => "127.0.0.1",
      :port => 6379,
      :path => nil,
      :timeout => 5.0,
      #注意:密码要加引号
      :password => "ABcd12#$",
      :db => 0,
      :driver => nil,
      :id => nil,
      :tcp_keepalive => 0,
      :reconnect_attempts => 1,
      :inherit_socket => false
    }

12、主从切换

#从节点接管主节点(主从关系互换)

redis-cli -c -h 192.168.1.1 -p 4321 -a ABcd12#$

#正常切换
cluster failover
#强制切换
cluster failover takover

#从节点指定所属主节点

redis-cli -c -h 192.168.1.1 -p 4321 -a ABcd12#$
cluster replicate c9083c61b9b7869b2d3c5b64957fcbb973146d75 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Ubuntu上安装Redis集群可以通过以下步骤完成: 1. 首先,确保你已经安装了Ubuntu操作系统,并且具备sudo权限。 2. 打开终端,更新系统软件包列表: ``` sudo apt update ``` 3. 安装Redis服务器: ``` sudo apt install redis-server ``` 4. 安装Redis的依赖工具: ``` sudo apt install redis-tools ``` 5. 配置Redis集群的节点: - 创建一个目录用于存储Redis集群的配置文件和数据: ``` mkdir redis-cluster cd redis-cluster ``` - 复制Redis配置文件模板到当前目录: ``` cp /etc/redis/redis.conf . ``` - 编辑Redis配置文件,设置以下参数: ``` port 7000 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes ``` 6. 复制并修改Redis配置文件,创建更多的节点: - 复制配置文件: ``` cp redis.conf redis-7001.conf cp redis.conf redis-7002.conf ``` - 修改每个配置文件的端口号和cluster-config-file参数: ``` # redis-7001.conf port 7001 cluster-config-file nodes.conf # redis-7002.conf port 7002 cluster-config-file nodes.conf ``` 7. 启动Redis集群节点: - 在每个节点的终端窗口中执行以下命令: ``` redis-server redis-7000.conf redis-server redis-7001.conf redis-server redis-7002.conf ``` 8. 创建Redis集群: - 打开一个新的终端窗口,执行以下命令: ``` redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 --cluster-replicas 1 ``` 9. 验证Redis集群是否正常工作: - 运行以下命令连接到Redis集群: ``` redis-cli -c -p 7000 ``` - 在Redis命令行中执行一些操作,例如设置和获取键值对: ``` set key1 value1 get key1 ``` - 如果能够成功执行操作并获取到正确的结果,则说明Redis集群已经安装并正常工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值