Redis缓存数据库集群搭建(主从)

此文章做了redis安装并且设置了主从
稍后我会写一个哨兵模式的redis,使用哨兵(可以理解为redis的一个单独服务)来监控redis的主从状态,来达到真正的高可用。
系统环境:centos7(提前关闭防火墙和selinux、下载好redis安装包)
特别说明:
本人redis哨兵服务配置文档链接为https://blog.csdn.net/zeorg/article/details/112875064

IP节点名称
192.168.182.150master
192.168.182.151node-1
192.168.182.152node-2

1、安装gcc环境、上传redis包、安装redis。
所有节点执行

[root@master ~]# yum -y install gcc
[root@master ~]# cd /usr/local/
[root@master local]# cp -a /root/redis-3.2.7.tar.gz .
[root@master local]# tar -zxf redis-3.2.7.tar.gz 
[root@master local]# mv redis-3.2.7 redis
[root@master local]# cd redis
[root@master redis]# make 
[root@master redis]# make PREFIX=/usr/local/redis install
[root@master redis]# mkdir -p /usr/local/redis/pid/
[root@master redis]# mkdir -p /usr/local/redis/db
[root@master redis]# mkdir /usr/local/redis/log/

2、修改redis配置文件。
master节点执行

[root@master redis]# cat /usr/local/redis/redis.conf |grep -v "#"|grep -v "^$"
protected-mode no
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile "/usr/local/redis/pid/redis.pid"
loglevel notice
logfile "/usr/local/redis/log/redis.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump.rdb"
dir "/usr/local/redis/db"
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
requirepass "password"
masterauth "password"

3、启动redis、关闭redis、redis命令使用(测试可不做)。
master节点执行

[root@master redis]# ./bin/redis-server ./redis.conf 
[root@master redis]# ps -ef |grep redis
root       4591      1  0 23:48 ?        00:00:00 ./bin/redis-server 127.0.0.1:6379
root       4595   1171  0 23:49 pts/0    00:00:00 grep --color=auto redis
[root@master redis]# ./bin/redis-cli shutdown
[root@master redis]# ps -ef |grep redis      
root       4598   1171  0 23:51 pts/0    00:00:00 grep --color=auto redis
[root@master redis]# ./bin/redis-server ./redis.conf 
[root@master redis]# ./bin/redis-cli
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> set name www      #####写入数据
OK
127.0.0.1:6379> get name		#####查看name key的数据
"www"
127.0.0.1:6379> keys *			####查看所有key
1) "name"
127.0.0.1:6379> del name        ####删除name key的值
(integer) 1
127.0.0.1:6379> keys *           #####查看所有key
(empty list or set)
127.0.0.1:6379> 

4、把主redis配置文件拷贝到从redis节点。
master节点执行

[root@master ~]# scp /usr/local/redis/redis.conf root@192.168.182.151:///usr/local/redis/

5、添加映射到主节点的内容slaveof 192.168.182.150 6379、拷贝配置文件内容到node-2节点。
node-1节点执行

[root@node-1 redis]# cat /usr/local/redis/redis.conf |grep -v "#"|grep -v "^$"
protected-mode no
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile "/usr/local/redis/pid/redis.pid"
loglevel notice
logfile "/usr/local/redis/log/redis.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump.rdb"
dir "/usr/local/redis/db"
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
requirepass "password"
masterauth "password"
slaveof 192.168.182.150 6379


[root@node-1 redis]# scp redis.conf root@192.168.182.152:///usr/local/redis

6、配置开机启动服务并拷贝到从节点。
master节点执行

[root@master redis]# cat /usr/lib/systemd/system/redis.service 
[Unit]
Description=Redis-Server
##在哪个服务之后启动
After=network.target

[Service]
# 注意文件路径
PIDFile=/usr/local/redis/pid/redis.pid
# 注意文件路径
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
# ExecStop=/usr/local/redis/bin/redis-cli -a password shutdown
ExecStop=/bin/kill -s QUIT $MAINPID
ExecReload=/bin/kill -s HUP $MAINPID

[Install]
WantedBy=mutli-user.target


[root@master redis]# systemctl daemon-reload   ###如果有必要从节点执行。
[root@master redis]# scp  /usr/lib/systemd/system/redis.service root@192.168.182.151:///usr/lib/systemd/system/

[root@master redis]# scp  /usr/lib/systemd/system/redis.service root@192.168.182.152:///usr/lib/systemd/system/ 

7、启动redis服务查看主从状态。
所有节点执行

systemctl start redis

8、进入redis查看状态。
所有节点执行

[root@master redis]# ./bin/redis-cli 
127.0.0.1:6379> info
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.182.151,port=6379,state=online,offset=267,lag=0
slave1:ip=192.168.182.152,port=6379,state=online,offset=267,lag=0
###上面是主上面的信息我为了方便观看删掉了一些内容,如果大家做实验的时候找到这几行就可以了,现在可以看到主redis上显示角色是master
# Replication
role:slave
master_host:192.168.182.150
master_port:6379
master_link_status:up
####这上面是从上面的状态显示redis主是up状态并且主机和端口都有显示

redis的搭建和使用就为大家写到这里。

本人aws云计算新课程上线
地址:https://edu.51cto.com/sd/b1556

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值