接着上篇文章,现在开始部署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并不能通过包管理工具(例如 yum、apt-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集群的搭建就完成了。