Centos-7下常见中间件环境的安装(三)

接着上篇文章,现在开始部署Redis集群,采用方案为四主四从,暂时不考虑搭建哨兵,因此需要八台机器,以下是部署过程中的一些记录。

准备工作

集群机器信息

IP CPU、RAM
10.100.1.31 16 vcpu、64G ram
10.100.1.32 16 vcpu、64G ram
10.100.1.33 16 vcpu、64G ram
10.100.1.34 16 vcpu、64G ram
10.100.1.35 16 vcpu、64G ram
10.100.1.36 16 vcpu、64G ram
10.100.1.37 16 vcpu、64G ram
10.100.1.38 16 vcpu、64G ram

Redis 为内存数据库,因此机器内存必须较大,根据经验,Redis占用内存一般不能超过机器内存的一半,不否则Redis的性能就会开始下降

Redis编译

由于Redis并不能通过包管理工具(例如 yumapt-get等)进行快速安装,只能下载源码进行编译安装。

1
2
3
4
5
jobshen@JobShen-PC:/usr/local$ curl -O http://download.redis.io/releases/redis-4.0.6.tar.gz
jobshen@JobShen-PC:/usr/local$ tar -zxf redis-4.0.6.tar.gz
jobshen@JobShen-PC:/usr/local$ ln -s redis-4.0.6 redis
jobshen@JobShen-PC:/usr/local$ cd redis
jobshen@JobShen-PC:/usr/local/redis$ make && make install

Redis Cluster 部署

Redis.conf

新建cluster文件夹,以及新建redis.conf文件并添加以下内容:

1
2
jobshen@JobShen-PC:/usr/local/redis$ mkdir cluster
jobshen@JobShen-PC:/usr/local/redis$ vim cluster/redis.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
bind 10.100.1.31 127.0.0.1
protected-mode yes
port 6379
daemonize yes
supervised systemd
pidfile /var/run/redis_6379.pid
logfile "/usr/local/redis/cluster/redis.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
dbfilename dump.rdb
slave-serve-stale-data yes
slave-read-only yes
slave-priority 100
maxmemory 34359738368
appendonly yes
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000

Redis.service

创建systemd服务,

1
jobshen@JobShen-PC:/usr/local/redis$ vim /lib/systemd/system/redis.service
1
2
3
4
5
6
7
8
9
10
[Unit]
Description=Redis
After=network.target

[Service]
ExecStart=/usr/local/redis/src/redis-server /usr/local/redis/cluster/redis.conf --daemonize no
ExecStop=/usr/local/redis/src/redis-cli -h 127.0.0.1 -p 6379 shutdown

[Install]
WantedBy=multi-user.target

启动Redis

1
jobshen@JobShen-PC:/usr/local/redis$ systemctl start redis

创建Redis集群

以下命令可以只在一台机器上执行,但为了后期维护Redis集群方便,可以在所有redis机器上都安装集群管理工具。

1
2
3
4
5
6
jobshen@JobShen-PC:/usr/local/redis$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
jobshen@JobShen-PC:/usr/local/redis$ curl -sSL https://get.rvm.io | bash -s stable
jobshen@JobShen-PC:/usr/local/redis$ rvm install 2.4.3
jobshen@JobShen-PC:/usr/local/redis$ rvm use 2.4.3 --default --create
jobshen@JobShen-PC:/usr/local/redis$ gem install redis
jobshen@JobShen-PC:/usr/local/redis$ ./src/redis-trib.rb create --replicas 1 10.100.1.31:6379 10.100.1.32:6379 10.100.1.33:6379 10.100.1.34:6379 10.100.1.35:6379 10.100.1.36:6379 10.100.1.37:6379 10.100.1.38:6379

验证

登入任意一台redis,查看集群信息

1
2
3
4
5
6
7
8
9
10
11
jobshen@JobShen-PC:/usr/local/redis$ ./src/redis-cli -c -p 6369
127.0.0.1:6379> cluster nodes
31f29a40699e44ae9b0dce5c8ded53cc92546c7f 10.100.1.31:6379@16379 master - 0 1513599855000 2 connected 4096-8191
bd148fc244c821f0ebc502e2ef80e90e3ce8020f 10.100.1.32:6379@16379 master - 0 1513599857582 4 connected 12288-16383
24c0c11cceb08a0a2c0f76773a1c3ecb5553fdd1 10.100.1.33:6379@16379 slave bd148fc244c821f0ebc502e2ef80e90e3ce8020f 0 1513599857000 8 connected
b8ed99aef612d728f69015b20dae32751af5a668 10.100.1.34:6379@16379 myself,master - 0 1513599854000 1 connected 0-4095
ee420f56a64c89c519c82adf2131724456656711 10.100.1.35:6379@16379 slave b8ed99aef612d728f69015b20dae32751af5a668 0 1513599856000 5 connected
fa8f3b33ed93a8bb76c3f44b410436f12ca45d8c 10.100.1.36:6379@16379 slave 914483a3760cc5f7fc4422ea3326f39b0fc505b4 0 1513599854000 7 connected
914483a3760cc5f7fc4422ea3326f39b0fc505b4 10.100.1.37:6379@16379 master - 0 1513599854000 3 connected 8192-12287
da57f16f2f5b86cae95478157723c9b2972d460d 10.100.1.38:6379@16379 slave 31f29a40699e44ae9b0dce5c8ded53cc92546c7f 0 1513599854000 6 connected
127.0.0.1:6379>

到现在为止,整个Redis集群的搭建就完成了。