redis集群搭建
redis单个安装
1.下载安装包
wget http://download.redis.io/releases/redis-5.0.10.tar.gz
2.解压安装包
tar -zxvf redis-5.0.10.tar.gz
3.运行需要C环境,所以编译前需安装 gcc
yum install gcc-c++
4.redis编译安装
make && make install
5.新建bin etc文件夹用于归类(可选操作)
etc文件夹存放redis.conf 配置文件
bin文件夹存放可执行文件
6.修改主配置文件
1.进入etc目录,修改redis.conf文件
2.注释掉bind 127.0.0.1(解决只能特定网段访问限制)
3.将 protected-mode 属性改为 no (关闭保护模式,不然会阻止远程访问;同上,正式服务器项目上线可不修改)
4.将 daemonize 属性改为 yes (这样启动时就在后台启动)
5.设置密码(可选,个人建议还是设个密码)
requirepass
6.修改完成后,:wq保存并退出
1.端口
port 6380
2.指定日志文件路径
logfile “/home/adp/redis-5.0.12/cluster-config/6380/redis.log”
3.指定rdb、aof文件写入路径
dir /home/adp/redis-5.0.12/cluster-config/6380/
4.是否开启集群
cluster-enabled yes
5.集群配置文件名称
cluster-config-file nodes-6380.conf
6.超时时间
cluster-node-timeout 15000(默认值)
7.持久化配置
appendonly yes
8.pidfile redis-5.0.12/cluster-config/6380.pid/ pid位置
9.ip 绑定 一定要写本机ip并且建立集群的时候要用这个ip建立
bind 需要绑定本机的真实ip,这样外部才能连接进来
10.redis 密码设置,每个节点的密码必须一致
masterauth <yourpassword> 连接主节点密码
requirepass <yourpassword> 各个节点访问密码
11.cluster-config-file nodes.conf 节点信息,自动生成
12.daemonize yes 守护线程模式(后台启动)
13.关闭保护模式用于公网访问
protected-mode no
port 6380
logfile /home/adp/redis-5.0.12/cluster-config/6380/redis.log
dir /home/adp/redis-5.0.12/cluster-config/6380/
cluster-enabled yes
cluster-config-file nodes-6380.conf
cluster-node-timeout 15000
appendonly yes
pidfile redis-5.0.12/cluster-config/6380/6380.pid
bind 192.168.90.17
masterauth 123456
requirepass 123456
daemonize yes
protected-mode no
7.启动
指定redis-server启动redis.conf文件
启动客户端
redis-cli -h ip -p 端口
redis-cli auth 密码
8.关闭
127.0.0.1:6379> shutdown
not connected> exit
参考:
https://blog.youkuaiyun.com/xiefazhi123/article/details/119147657?spm=1001.2101.3001.6650.4&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-4-119147657-blog-121361931.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-4-119147657-blog-121361931.pc_relevant_paycolumn_v3&utm_relevant_index=9
复制到其他服务器
scp -r redis-5.0.10 root@192.168.90.124:/usr/local/redis/
redis集群配置
1.查看信息
10.16.16.50:6380> info replication
# Replication
role:master
connected_slaves:0
master_replid:f7275cbeac2d5d7391ccef7785acc95a4f4d5a90
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
2.主从配置
从机配置
暂时 slaveof ip port
永久 replicaof <masterip> <masterport>
3.哨兵配置
配置sentinel.conf文件
###普通配置
port 26381
# 保护模式关闭,这样其他服务起就可以访问此台redis
protected-mode no
# 哨兵模式是否后台启动,默认no,改为yes
daemonize yes
pidfile /var/run/redis-sentinel.pid
# log日志保存位置
logfile /usr/local/redis/redis-5.0.10/sentinel/redis-sentinel.log
# 工作目录
dir /usr/local/redis/redis-5.0.10/sentinel
###核心配置
# 核心配置。
# 第三个参数:哨兵名字,可自行修改。(若修改了,那后面涉及到的都得同步)
# 第四个参数:master主机ip地址
# 第五个参数:redis端口号
# 第六个参数:哨兵的数量。比如2表示,当至少有2个哨兵发现master的redis挂了,
# 那么就将此master标记为宕机节点。
# 这个时候就会进行故障的转移,将其中的一个从节点变为master
sentinel monitor mymaster 10.16.16.50 6380 2
# master中redis的密码
sentinel auth-pass mymaster 114411
# 哨兵从master节点宕机后,等待多少时间(毫秒),认定master不可用。
# 默认30s,这里为了测试,改成10s
sentinel down-after-milliseconds mymaster 10000
# 当替换主节点后,剩余从节点重新和新master做同步的并行数量,默认为 1
sentinel parallel-syncs mymaster 1
# 主备切换的时间,若在3分钟内没有切换成功,换另一个从节点切换
sentinel failover-timeout mymaster 180000
启动
redis-sentinel sentinel.conf
进入客户端
redis-cli -h ip -p 端口号