190925-Redis集群搭建手册

文章目录
  1. I. redis集群搭建过程
    1. 1. 获取项目并编译
    2. 2. 开始配置
    3. 3. 启动并设置集群
    4. 4. 测试
  2. II. 其他
    1. 1. 一灰灰Blog: https://liuyueyi.github.io/hexblog
    2. 2. 声明
    3. 3. 扫描关注

之前在使用redis的case中,更多的只是单机的使用;随着业务的增长,为了更好的性能提供,集群是一个必然的发展趋势;下面记录一下搭建集群的步骤

单机安装手册,可以查看: 单机redis安装手册

I. redis集群搭建过程

1. 获取项目并编译

首先是从官网获取最新稳定版的redis包,官网友链 -> https://redis.io/

1
2
3
4
5
6
7
# 下载redis包
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar -zxvf redis-5.0.5

# 开始编译
make
make test

通过上面执行完毕之后,在src目录下,会生成常见的操作命令,如redis-cli redis-server

2. 开始配置

在redis目录下,配置文件redis.conf是我们需要关注的目标

我们这里在本机搭建三个节点,对应的端口号分别为7000, 7001, 7002

接下来,进入配置文件,进行修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mkdir -p data/7000 data/7001 data/7002 log/7000 log/7001 log/7002 

# 下面的配置,一次操作三遍,分别获得r7000.conf r7001.conf r7002.conf
cp redis.conf r7000.conf
vim r7000.conf

## 下面是我们需要修改的地方
port 7000 # 端口号
pidfile /var/run/redis_7000.pid # pid进程文件

# 日志和数据存储路径
logfile "/home/yihui/redis/log/7000/redis.log"
dir "/home/yihui/redis/data/7000/"

# 后台启动
daemonize yes
# 开启集群
cluster-enabled yes

3. 启动并设置集群

上面设置完毕之后,开始启动redis

1
2
3
src/redis-server r7000.conf
src/redis-server r7001.conf
src/redis-server r7002.conf

启动完毕之后,可以查看到如下的进程

到这里,集群还没有设置完成,还需要通过redis-cli设置一下集群关系

1
redis/src/redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 --cluster-replicas 1

执行上面的命名,发现并不能成功,提示如下

1
2
3
4
*** ERROR: Invalid configuration for cluster creation.
*** Redis Cluster requires at least 3 master nodes.
*** This is not possible with 3 nodes and 1 replicas per node.
*** At least 6 nodes are required.

上面表示redis集群必须有三个主节点,当我们设置主从时,最少需要六个节点;当然我们在本机测试的时候,搞六个必要性不大,这里直接不要从节点

1
redis/src/redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002

执行上面命令并确认之后,redis集群基本上就搭建完毕

4. 测试

借助redis-cli进行集群的连接和测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
redis/src/redis-cli -c -p 7000
127.0.0.1:7000> cluster nodes
e1bd930c0b6f42da4af18f5aca551fd26d769330 127.0.0.1:7001@17001 master - 0 1569411511851 2 connected 5461-10922
7b8b9ea9feab9dc1c052c4a6215f211c25776e38 127.0.0.1:7002@17002 master - 0 1569411512853 3 connected 10923-16383
d7b8d578eedf9d1148009b6930e5da6bdbd90661 127.0.0.1:7000@17000 myself,master - 0 1569411512000 1 connected 0-5460
127.0.0.1:7000> set test 123
-> Redirected to slot [6918] located at 127.0.0.1:7001
OK
127.0.0.1:7001> set test2 1342
OK
127.0.0.1:7001> set test3 123
-> Redirected to slot [13026] located at 127.0.0.1:7002
OK
127.0.0.1:7002> set test1 123
-> Redirected to slot [4768] located at 127.0.0.1:7000
OK
127.0.0.1:7000> keys *
1) "test1"
127.0.0.1:7000>

通过keys命令查看,我们上面设置的几个值分布在三个实例上了

II. 其他

1. 一灰灰Bloghttps://liuyueyi.github.io/hexblog

一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

2. 声明

尽信书则不如,已上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激

3. 扫描关注

一灰灰blog

QrCode

知识星球

goals

# Redis

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×