服务规划
服务器 | 主备关系 | 端口 |
---|---|---|
192.168.2.150 | 主实例 | 6379 |
192.168.2.151 | 主实例 | 6379 |
192.168.2.152 | 主实例 | 6379 |
192.168.2.150 | 从实例 --> 192.168.2.151:6379 | 26379 |
192.168.2.151 | 从实例 --> 192.168.2.152:6379 | 26379 |
192.168.2.152 | 从实例–> 192.168.2.150:6379 | 26379 |
一些小的项目,不需要完整的集群架构(如果完整的redis集群最少6台服务器,即所有的主从都分离,三组主从),有点浪费资源,这里选用三台服务器即可,每台服务器起两个redis实例,组成三组redis主从,通过端口区分,并且保证每一组redis的主从不落到同一台服务器上
Redis服务部署
创建目录
mkdir -pv /usr/local/redis-cluster/{master,slave}/{bin,conf} /data/redis/{master,slave}/{data,logs}
系统配置
sysctl配置
vim /etc/sysctl.conf
加入
vm.overcommit_memory = 1
sysctl -p
ulimit配置
vim /etc/security/limits.conf
加入
* soft nofile 65535
* hard nofile 65535
下载地址
https://redis.io/download
解压编译
yum install gcc gcc-c++ jemalloc-devel
tar -zxf redis-6.2.1.tar.gz
cd redis-6.2.1/deps
make lua hiredis linenoise
cd redis-6.2.1
make
cd redis-6.2.1/src
cp redis-cli redis-server redis-sentinel redis-check-aof redis-check-rdb /usr/local/redis-cluster/master/bin/
cp redis-cli redis-server redis-sentinel redis-check-aof redis-check-rdb /usr/local/redis-cluster/slave/bin/
cp redis.conf /usr/local/redis-cluster/master/conf/
cp redis.conf /usr/local/redis-cluster/slave/conf/
将bin目录同步到所有节点的所有实例对应的目录中
修改配置文件
示例:
主
bind 192.168.2.152
protected-mode no
port 6379
daemonize yes
pidfile /data/redis/master/logs/redis_6379.pid
logfile "/data/redis/master/logs/redis-6379.log"
dir /data/redis/master/data
databases 16
requirepass 123456
masterauth 123456
appendonly yes
appendfilename "appendonly.aof"
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 5000
从配置和主基本一样,有差异的如下
port 26379 pidfile /data/redis/slave/logs/redis_26379.pid logfile "/data/redis/slave/logs/redis-26379.log" dir /data/redis/slave/data cluster-config-file nodes-26379.conf
启动redis服务
/usr/local/redis-cluster/master/bin/redis-server /usr/local/redis-cluster/master/conf/redis.conf
/usr/local/redis-cluster/slave/bin/redis-server /usr/local/redis-cluster/slave/conf/redis.conf
创建redis集群
集群实例规划
实例-主 | 实例-从 |
---|---|
192.168.2.150:2379 | 192.168.2.151:26379 |
192.168.2.151:2379 | 192.168.2.152:26379 |
192.168.2.152:2379 | 192.168.2.150:26379 |
创建集群
./redis-cli -a 123456 --cluster create --cluster-replicas 1 192.168.2.150:6379 192.168.2.151:6379 192.168.2.152:6379 192.168.2.151:26379 192.168.2.152:26379 192.168.2.150:26379
前面是主后面是从,主从按顺序对应,即 150主实例 151主实例152主实例 150从实例 151从实例152从实例
集群登录方法
./redis-cli -a 123456 -c -h 192.168.2.151 -p 6379
登录任意节点的主即可