Java小强个人技术博客站点    手机版
当前位置: 首页 >> 软件 >> Centos7配置Redis主从关系

Centos7配置Redis主从关系

14650 软件 | 2022-1-25

REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。

Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。

Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。


修改conf/redis.conf文件,将其中的持久化模式改为默认的RDB模式,AOF保持关闭状态

# 开启RDB
# save ""
save 3600 1
save 300 100
save 60 10000
# 关闭AOF
appendonly no


创建每个节点工作目录

[root@localhost redis]# pwd
/root/redis
mkdir 7001 7002 7003


然后将conf/redis.conf文件拷贝到三个目录中

# 方式一:逐个拷贝
cp conf/redis.conf 7001
cp conf/redis.conf 7002
cp conf/redis.conf 7003
# 方式二:管道组合命令,一键拷贝
echo 7001 7002 7003 | xargs -t -n 1 cp conf/redis.conf


修改每个实例的端口、工作目录等

# Accept connections on the specified port, default is 6379 (IANA #815344).
# If port 0 is specified Redis will not listen on a TCP socket.
port 7001

# If a pid file is specified, Redis writes it where specified at startup
# and removes it at exit.
pidfile /var/run/redis_7001.pid

# The working directory.
dir /root/redis/7001/

# Specify the log file name. Also the empty string can be used to force
# Redis to log on the standard output. Note that if you use standard
# output for logging but daemonize, logs will be sent to /dev/null
logfile "/root/redis/7001/redis7001.log"


虚拟机本身有多个IP,为了避免将来混乱,我们需要在redis.conf文件中指定每一个实例的绑定ip信息,格式如下:

# 逐一执行
sed -i '1a replica-announce-ip 192.168.3.22' 7001/redis.conf
sed -i '1a replica-announce-ip 192.168.3.22' 7002/redis.conf
sed -i '1a replica-announce-ip 192.168.3.22' 7003/redis.conf
# 或者一键修改
printf '%s\n' 7001 7002 7003 | xargs -I{} -t sed -i '1a replica-announce-ip 192.168.3.22' {}/redis.conf


启动

redis-server /root/redis/7001/redis.conf
# 或者使用如下命令全部启动
printf '%s\n' 7001 7002 7003 | xargs -I{} -t redis-server /root/redis/{}/redis.conf

停止

redis-cli -p 7001 shutdown
# 或者使用如下命令全部停止
printf '%s\n' 7001 7002 7003 | xargs -I{} -t redis-cli -p {} shutdown


开启主从

修改配置文件(永久生效),在redis.conf中添加一行配置

slaveof 192.168.3.22 7001

使用redis-cli客户端连接到redis服务,执行slaveof命令(重启后失效)

slaveof <masterip> <masterport>

配置后查看主从状态

# 连接 7001
redis-cli -p 7001
# 查看状态
info replication

显示如下:

# Replication
role:master
connected_slaves:2
slave0:ip=192.168.3.22,port=7002,state=online,offset=574,lag=1
slave1:ip=192.168.3.22,port=7003,state=online,offset=574,lag=1
master_failover_state:no-failover
master_replid:1f49f1a71e1dfb25fef7fff95ac0556239430244
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:574
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:574


如上则表示主从关系配置成功。


推荐您阅读更多有关于“ 节点 redis Centos7 主从 ”的文章

上一篇:Centos7配置Redis哨兵 下一篇:Centos7安装Redis

猜你喜欢

发表评论: