Redis教程

Redis集群搭建

本文主要是介绍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的从节点;

这篇关于Redis集群搭建的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!