目录名字
1、背景
redis集群需要至少要三个master节点,我们这里搭建三个master节点,并且给每个master再搭建一个slave节点,总共6个redis节点,这里用一台机器部署6个redis实例,一共三组一主一从集群。
2、准备3个节点
192.168.0.186
192.168.0.187
192.168.0.188
且每个节点,都配置2个端口 7001 7002 。
3、http://download.redis.io/releases/ 下载需要的版本
我下载的5.0.14。
上传到每个节点的 /opt/software
或者使用wget的方式。
4、解压:tar -zxvf redis-5.0.14.tar.gz -C /opt/module/
5、然后以hadoop104为例开始安装配置。
1)首先进入 redis目录,创建7001 7002目录
2)分别创建两个7001和7002的配置文件目录conf,日志目录logs,数据存储目录data,如下命令
mkdir conf logs data
直接在7001/下面,创建 conf logs data
直接在7002/下面,创建 conf logs data
3)执行以下命令复制配置redis.conf文件并编辑,将这个redis.conf放到 conf/目录下。
cp redis.conf ./7001/conf
vim ./7001/conf/redis.conf
这里的是可能需要修改的哈。。。
protected-mode no
port 7001 # redis监听端口
daemonize yes #使用 yes 启用守护进程(redis后台运行)
pidfile /var/run/redis_7001.pid #当 Redis 以守护进程方式运行时,Redis 默认会把 pid(pid进程文件名,以端口号命名) # pid文件,**运行多个实例时,需要指定不同的pid文件
logfile /opt/module/redis-5.0.14/7001/logs/redis-7001.log #日志目录(日志文件名称,以端口号为目录来区分) # 日志文件位置,运行多实例时,需要修改不同的端口。
dir /opt/module/redis-5.0.14/7001/data #本地数据库存放目录(数据文件存放地址,以端口号为目录名来区分)(#存放数据的目录)
#redis会把所接收到的每一次写操作请求都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态。
appendonly yes #开启AOF(每次更新操作后进行日志记录,默认:no)(启动AOF增量持久化策略)
# 开启redis-cluster集群
cluster-enabled yes
#集群配置文件,由redis自动更新,不需要手动配置,**运行多实例时请注修改为对应端口**
#每个实例还包含存储此节点配置的文件的路径
cluster-config-file nodes-7001.conf # 保存节点配置,自动创建,自动更新(配置每个节点的配置文件,同样以端口号为名称)
# 绑定服务器域名或IP地址(本绑定服务器域名或IP地址)(本机ip,使得三台服务器可相互访问)
bind 192.168.0.188
# 集群超时时间,节点超过这个时间没反应就断定是宕机
#集群节点超时时间,即集群中主从节点断开连接时间阈值,超过该值则认为主节点不可以,从节点将有可能转为master
cluster-node-timeout 15000
# AOF 自动重写
no-appendfsync-on-rewrite yes
以下的配置应该默认值就是这样的,不需要修改,根据自己需求调整:
# 日志记录级别,共4个级别:debug、verbose、notice(默认)、warning
loglevel notice
# 通过upstart和systemd管理Redis守护进程,与具体的操作系统相关的
supervised no
# 多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
save 900 1
save 300 10
save 60 10000
# 本地数据库的名字
dbfilename dump.rdb
# 存储到本地文件开启压缩,默认:yes
rdbcompression yes
# 更新日志文件名
appendfilename "appendonly.aof"
# 指定更新日志条件:
# # no: 等操作系统进行数据缓存同步到磁盘(快)
# # always: 每次更新操作后手动调用 fsync() 将数据写磁盘(慢,安全)
# # everysec: 每秒同步一次(折中,默认值)
# appendfsync always
appendfsync everysec
# appendfsync no
# 密码暂未设置,给出配置
# # 当 master 服务设置了密码保护时,slav 服务连接 master 的密码
# masterauth <master-password>