ubuntu部署redis集群

记录第一次在linux(ubuntu)下部署redis集群

环境准备

redis版本5.0.8
官网下载源码并解压

// redis 5.0.8
wget http://download.redis.io/releases/redis-5.0.8.tar.gz
tar -zxvf redis-5.0.8.tar.gz
cd redis-5.0.8
make PREFIX=/home/slk/software/redis install

集群部署

目录创建及配置文件更改

首先创建6个目录,用来部署6个节点,3主3从,端口号自定义,本文选用7000-7005
并在6个目录中分别创建conf data log 3个目录用来存放日志等文件
将解压的redis-5.0.8目录下redis.conf文件分别复制到上面的6个目录中,对应每个端口号修改内容

port 7000                               # 修改端口号对应目录的端口号
bind 0.0.0.0                            # Ip绑定 绑定本机ip或者改为 0.0.0.0--这个配置我没有修改,使用默认的127.0.0.1
/home/weblogic/redis/redis-cluster/7000/data # 数据位置dir ./  改为>dir /home/weblogic/redis/redis-cluster/7000/data
cluster-enabled yes                     # 启用集群模式
cluster-config-file nodes-7000.conf     # 集群模式中节点的配置文件
cluster-node-timeout 5000               # 超时时间
appendonly yes                          # redis数据持久化开启,开启AOF模式
daemonize yes                           # 后台运行
protected-mode no                       # 非保护模式,允许 Redis 远程访问
pidfile  /home/weblogic/redis/redis-cluster/7000/data/redis_7000.pid  # pidfile 需要随着文件夹的不同调增
# 如需密码则修改如下配置--这里我并未设置密码
requirepass "guoyuan" # 在:# requirepass foobared 下新增密码配置
masterauth "密码"    # masterauth <master-password> 下新增密码配置

使用redis-server工具启动进程

# 注意6个进程都要启动,这里只列举一个
/home/slk/software/redis/bin/redis-server /home/slk/software/redis/redis-cluster/7000/7000.conf

启动后用ps命令查看进程是否启动成功
注意:此时只是启动了redis的6个实例,但并未创建集群模式,使用redis-cli命令进入任意一个节点创建key会报错

127.0.0.1:7005> set test 123
(error) CLUSTERDOWN Hash slot not served

原因是6个节点并未分配slot

create命令创建集群

进程启动成功后,使用redis-cli create命令创建集群,注意安装过程中需要输入yes

/home/slk/software/redis/bin/redis-cli --cluster create 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-replicas 1
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 127.0.0.1:7004 to 127.0.0.1:7000
Adding replica 127.0.0.1:7005 to 127.0.0.1:7001
Adding replica 127.0.0.1:7003 to 127.0.0.1:7002
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: 8e6a3bac108e035bcbd7dd621bd64c0d0ba7432e 127.0.0.1:7000
   slots:[0-5460] (5461 slots) master
M: c173c00989f0f64e390711116141f37d8039ea43 127.0.0.1:7001
   slots:[5461-10922] (5462 slots) master
M: 42b09bed1ef637f70f21d7788d3ae4220d72eb18 127.0.0.1:7002
   slots:[10923-16383] (5461 slots) master
S: c41bafa0bb3debd8cd37b70df15746bf8dbbb962 127.0.0.1:7003
   replicates c173c00989f0f64e390711116141f37d8039ea43
S: 91e9af3e8fa8d4744c85ead86a80556818919707 127.0.0.1:7004
   replicates 42b09bed1ef637f70f21d7788d3ae4220d72eb18
S: 678f12ca3af4d2b92f3bbb9f474c307487594ebc 127.0.0.1:7005
   replicates 8e6a3bac108e035bcbd7dd621bd64c0d0ba7432e
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:7000)
M: 8e6a3bac108e035bcbd7dd621bd64c0d0ba7432e 127.0.0.1:7000
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: 42b09bed1ef637f70f21d7788d3ae4220d72eb18 127.0.0.1:7002
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: c41bafa0bb3debd8cd37b70df15746bf8dbbb962 127.0.0.1:7003
   slots: (0 slots) slave
   replicates c173c00989f0f64e390711116141f37d8039ea43
M: c173c00989f0f64e390711116141f37d8039ea43 127.0.0.1:7001
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 91e9af3e8fa8d4744c85ead86a80556818919707 127.0.0.1:7004
   slots: (0 slots) slave
   replicates 42b09bed1ef637f70f21d7788d3ae4220d72eb18
S: 678f12ca3af4d2b92f3bbb9f474c307487594ebc 127.0.0.1:7005
   slots: (0 slots) slave
   replicates 8e6a3bac108e035bcbd7dd621bd64c0d0ba7432e
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

至此,3主3从集群的部署基本完成了。

问题积累

  1. redis-cli连接某个节点时只能查看当前节点的key信息
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章