CentOS7 安装Redis单实例 配置主从节点 超详细教程
CentOS7安装Redis 6.0.9
1.先到准备放安装包的目录,下载安装包
cd /usr/local
mkdir redis
cd redis
https://download.redis.io/releases/redis-6.0.9.tar.gz
解压
tar -zxvf redis-6.0.9.tar.gz
2.因为Redis是用c语言写的,所以需要使用GCC,Redis默认的gcc版本是4.8.5,而Redis 6 支持了多线程,gcc版本需要大于4.9,所以需要升级gcc版本
查看gcc版本
gcc -v
升级gcc版本
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
编译安装
cd redis-6.0.9/src
make install
到这里就安装好了,下面需要修改redis配置
# => 修改成
daemonize no // 修改成 daemonize yes
bind 127.0.0.1 //注释这一行 否则只能再本机访问
requirepass yourpassword //在外网访问需要配置密码
关闭防火墙,不然后面可能redis的可视化工具可能访问不到
systemctl stop firewalld.service
配置别名
vim ~/.bashrc
在其中添加两行
alias redis='/usr/local/redis/redis-6.0.9/src/redis-server /usr/local/redis/redis-6.0.9/redis.conf'
alias rcli='/usr/local/soft/redis-6.0.9/src/redis-cli'
编译生效
source ~/.bashrc
到这里就能配置好了,使用./src/redis-server --version查看redis版本
[root@aubin redis-6.0.9]# pwd
/usr/local/redis/redis-6.0.9
[root@aubin redis-6.0.9]# ./src/redis-server --version
Redis server v=6.0.9 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=2f135e9be8d009ba
用redis
启动服务,rcli
进入客户端,进入后使用auth yourpassword验证身份
[root@aubin redis-6.0.9]# rcli
127.0.0.1:6379> auth 123
OK
127.0.0.1:6379> set sf 123
OK
127.0.0.1:6379> get sf
"123"
配置主从节点
这样Centos 7 上 Redis 单实例就安装好了,然后可以配置主从节点,我这里就直接在redis-6.0.9的子目录下建了,可以自己选择新建的位置,这里我保留了原来的Redis配置,新建了三个节点 1主 2从
复制配置文件
[root@aubin redis-6.0.9]# cp redis.conf redis_6379.conf
[root@aubin redis-6.0.9]# cp redis.conf redis_6380.conf
[root@aubin redis-6.0.9]# cp redis.conf redis_6381.conf
创建对应pid文件
[root@aubin redis-6.0.9]# touch redis-6379.pid
[root@aubin redis-6.0.9]# touch redis-6380.pid
[root@aubin redis-6.0.9]# touch redis-6381.pid
创建rdb文件存放目录
[root@aubin redis-6.0.9]# mkdir db
[root@aubin redis-6.0.9]# cd db
[root@aubin db]# mkdir master
[root@aubin db]# mkdir slave_one
[root@aubin db]# mkdir slave_two
然后 到redis-6.0.9目录 修改配置文件
[root@aubin redis-6.0.9]#
修改配置文件如下,123是我redis的密码
redis_6379.conf
port 6379
daemonize yes
pidfile /usr/local/redis/redis-6.0.9/redis_6379.pid
dir /usr/local/redis/redis-6.0.9/db/master/
masterauth 123
requirepass 123
redis_6380.conf
port 6380
daemonize yes
pidfile /usr/local/redis/redis-6.0.9/redis_6380.pid
dir /usr/local/redis/redis-6.0.9/db/slave_one/
slaveof 127.0.0.1 6379
masterauth 123
requirepass 123
redis_6381.conf
port 6381
daemonize yes
pidfile /usr/local/redis/redis-6.0.9/redis_6381.pid
dir /usr/local/redis/redis-6.0.9/db/slave_two/
slaveof 127.0.0.1 6379
masterauth 123
requirepass 123
配置完成后启动,先启动主 再启动从
[root@aubin redis-6.0.9]# ./src/redis-server ./redis-6379.conf
[root@aubin redis-6.0.9]# ./src/redis-server ./redis-6380.conf
[root@aubin redis-6.0.9]# ./src/redis-server ./redis-6381.conf
查看redis进程
[root@aubin redis-6.0.9]# ps -ef | grep redis
root 8313 1 0 22:03 ? 00:00:00 ./src/redis-server *:6379
root 8320 1 0 22:03 ? 00:00:00 ./src/redis-server *:6380
root 8327 1 0 22:03 ? 00:00:00 ./src/redis-server *:6381
进入主节点 ,查看相关信息,可以看到role:master 已经有2个从节点
[root@aubin redis-6.0.9]# rcli -p 6379
127.0.0.1:6379> auth 123
OK
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6380,state=online,offset=126,lag=1
slave1:ip=127.0.0.1,port=6381,state=online,offset=126,lag=1
master_replid:8fbd5b155551f4a86a54b2123e6fb8dc42d71776
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:126
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:126
进入从节点 role:slave
[root@aubin redis-6.0.9]# rcli -p 6380
127.0.0.1:6380> auth 123
OK
127.0.0.1:6380> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_repl_offset:392
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:8fbd5b155551f4a86a54b2123e6fb8dc42d71776
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:392
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:392
到这里,主从配置就已经好了,然后可以在主节点中添加数据,在从节点中能查到响应数据(从节点启动时全量同步,之后是增量同步,注意如果同一时间有多个隶属于同一个主节点的从节点启动,可以会造成主节点IO问题)
ps:运行时,为了方便我使用了root账号,正式环境下请使用其他账号,必要时才使用root账号