微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Redis集群搭建

笔记:记录Redis集群搭建,伪集群示例

修改配置

将Redis配置文件复制几份,集群有几个节点就复制几份,修改以下配置,将每个节点的以下配置中的所有的6379,替换为此节点的端口号(如果集群不在一个机器上则忽略),为了不让生成的RDB等数据文件名字冲突和端口冲突。

# 将bind这一行注释掉,或者修改为0:0:0:0,这表示任意地址都可以连接此Redis服务
# bind 127.0.0.1

# 关闭保护模式,如果开启的话,外部服务就连不上Redis
protected-mode no

# 配置redis的端口号
port 6379

# 以守护进程运行(后台运行redis)
daemonize yes

# 服务启动后记录线程号的文件
pidfile "/var/run/redis_6379.pid"

# 日志文件名字
logfile "6379.log"

# 数据库的个数
databases 16

# 设置数据保存到数据文件中的save规则,3600秒内修改1次key,进行一次磁盘保存操作
save 3600 1
save 300 100
save 60 10000

# 指定存储至本地数据库时是否压缩数据,认是yes,redis采用LZF压缩,需要消耗cpu资源
rdbcompression yes

# 保存rdb文件时,是否对rdb文件进行校验
rdbchecksum yes

# 保存数据的文件名字
dbfilename "dump6379.rdb"

# 数据保存路径,是一个目录,这个目录需要提前创建出来
dir "/opt/apps/redis"


# 是否开启aof,指出是否在每次更新操作后进行日志记录,如果不开启,
# 可能会在断电时导致一段时间内的数据丢失,
# 因为redis本身同步数据文件是按上面的save条件来同步的,
# 所以有的数据会在一段时间内只存在于内存中
appendonly yes

# aof文件名字
appendfilename "appendonly6379.aof"

# 集群配置文件,自动生成,不能人为维护
cluster-config-file "nodes-6379.conf"

节点规划

节点 类型 端口
redis6379 主(master) 6379
redis6380 从(slave1) 6380
redis6381 从(slave2) 6381

根据规划,将上面的配置复制三份,分别是redis6379.confredis6380.confredis6381.conf,把文件里面的6379,分别改成:637963806381

启动集群

执行以下命令,启动集群的三个节点,启动之后,可以查看Redis进程

redis-server redis6379.conf
redis-server redis6380.conf
redis-server redis6381.conf

image

使用客户端redis-cli连接Redis

redis-cli -p 6379
redis-cli -p 6380
redis-cli -p 6381

因为规划的是redis6380redis6381节点是节点,所以要让节点跟随节点。在 redis6380redis6381 节点上,执行SLAVEOF 127.0.0.1 6379命令,让它们作为 redis6379 的从节点

# 在redis6380上执行
127.0.0.1:6380> SLAVEOF 127.0.0.1 6379
OK Already connected to specified master

# 在redis6381上执行
127.0.0.1:6381> SLAVEOF 127.0.0.1 6379
OK Already connected to specified master

然后在主节点或者从节点上执行info replication命令可以查看状态,出现以下信息即表示成功:

主节点查看:

image


从节点查看:

image

哨兵(Sentinel)模式

创建一个文件sentinel.conf,加入以下内容(也可以在此配置文件中加入其他配置)

sentinel monitor myredis 127.0.0.1 6379 1

后执行redis-sentinel sentinel.conf命令启动哨兵,此时,如果redis6379主节点挂了,哨兵节点会选择新的主节点。
测试将主节点shutdown,稍等几秒,哨兵会在从节点中重新选择新的主节点:

  • 原主节点:

    image

  • 哨兵

    image

  • 新主节点

    image

redis6381 节点被选为新的主节点,如果redis6379再次连接上,那他也是redis6381的从节点;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐