环境 | 角色 |
---|---|
192.168.171.129 | redis7001 redis7002 |
192.168.171.130 | redis7003 redis7004 |
192.168.171.131 | redis7005 redis7006 |
echo "1" > /proc/sys/vm/overcommit_memory
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo 512 > /proc/sys/net/core/somaxconn
#关闭swap分区
swapoff -a
3台机器
[root@node1 ~]# wget http://download.redis.io/releases/redis-6.0.10.tar.gz
#安装依赖
[root@node1 ~]# yum -y install epel-release
[root@node1 ~]# yum -y install gcc tcl centos-release-scl devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
#高版本gcc设置
[root@node1 ~]# scl enable devtoolset-9 bash
[root@node1 ~]# echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
#查看gcc版本
[root@node1 ~]# gcc -v
gcc version 9.3.1 20200408 (Red Hat 9.3.1-2) (GCC)
[root@node1 ~]# tar xf redis-6.0.10.tar.gz
[root@node1 ~]# cd redis-6.0.10/
[root@node1 redis-6.0.10]# make
[root@node1 redis-6.0.10]# make install
[root@node1 redis-6.0.10]# ll /usr/local/bin/
total 46232
-rwxr-xr-x 1 root root 6399800 Feb 1 09:51 redis-benchmark
-rwxr-xr-x 1 root root 11401016 Feb 1 09:51 redis-check-aof
-rwxr-xr-x 1 root root 11401016 Feb 1 09:51 redis-check-rdb
-rwxr-xr-x 1 root root 6728576 Feb 1 09:51 redis-cli
lrwxrwxrwx 1 root root 12 Feb 1 09:51 redis-sentinel -> redis-server
-rwxr-xr-x 1 root root 11401016 Feb 1 09:51 redis-server
在3台机器上创建6个实例
[root@node1 redis-6.0.10]# mkdir -pv /usr/local/{redis7001,redis7002}
[root@node1 redis-6.0.10]# mkdir -pv /usr/local/redis7001/{conf,data}
[root@node1 redis-6.0.10]# mkdir -pv /usr/local/redis7002/{conf,data}
[root@node2 redis-6.0.10]# mkdir -pv /usr/local/{redis7003,redis7004}
[root@node2 redis-6.0.10]# mkdir -pv /usr/local/redis7003/{conf,data}
[root@node2 redis-6.0.10]# mkdir -pv /usr/local/redis7004/{conf,data}
[root@node3 redis-6.0.10]# mkdir -pv /usr/local/{redis7005,redis7006}
[root@node3 redis-6.0.10]# mkdir -pv /usr/local/redis7005/{conf,data}
[root@node3 redis-6.0.10]# mkdir -pv /usr/local/redis7006/{conf,data}
#配置文件,创建6个配置文件修改相应的端口和dir
[root@node1 redis-6.0.10]# cp redis.conf /usr/local/redis7001/conf/
[root@node1 redis-6.0.10]# cp redis.conf /usr/local/redis7002/conf/
[root@node2 redis-6.0.10]# cp redis.conf /usr/local/redis7003/conf/
[root@node2 redis-6.0.10]# cp redis.conf /usr/local/redis7004/conf/
[root@node3 redis-6.0.10]# cp redis.conf /usr/local/redis7005/conf/
[root@node3 redis-6.0.10]# cp redis.conf /usr/local/redis7006/conf/
#修改配置文件(6个实例都要做,这里只显示7001实例,端口修改为对应端口)
[root@node1 redis-6.0.10]# vim /usr/local/redis7001/conf/redis.conf
#对应修改以下内容
port 7001 #设置启动端口
daemonize yes#后台运行
bind 0.0.0.0
dir /usr/local/redis7001/data#数据目录
appendonly yes
cluster-enabled yes#允许集群启动
cluster-config-file nodes-7001.conf#集群配置文件名
cluster-node-timeout 5000 #集群节点之间多少毫秒无法连接后判定节点挂掉
pidfile /var/run/redis_7001.pid
启动redis
[root@node1 redis-6.0.10]# redis-server /usr/local/redis7001/conf/redis.conf
[root@node1 redis-6.0.10]# redis-server /usr/local/redis7002/conf/redis.conf
[root@node2 redis-6.0.10]# redis-server /usr/local/redis7003/conf/redis.conf
[root@node2 redis-6.0.10]# redis-server /usr/local/redis7004/conf/redis.conf
[root@node3 redis-6.0.10]# redis-server /usr/local/redis7005/conf/redis.conf
[root@node3 redis-6.0.10]# redis-server /usr/local/redis7006/conf/redis.conf
创建cluster
[root@node1 redis-6.0.10]# redis-cli --cluster create 192.168.171.129:7001 192.168.171.129:7002 192.168.171.130:7003 192.168.171.130:7004 192.168.171.131:7005 192.168.171.131:7006 --cluster-replicas 1
Can I set the above configuration? (type 'yes' to accept): yes
#...省略部分输出...
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
#查看集群节点信息
redis-cli -c -h 192.168.171.129 -p 7001 cluster nodes
#通过cli访问集群
[root@node1 redis-6.0.10]# redis-cli -c -h 192.168.171.129 -p 7001
192.168.171.129:7001>