Redis高可用架构 (redis主从+sentinel)
cat >> /etc/sysctl.conf<
cat >>/etc/security/limits.conf<<EOF
- soft nproc 65535
- hard nproc 65535
- soft nofile 65535
- hard nofile 65535
EOF
sysctl -p
cat /etc/sysctl.conf
cat /etc/security/limits.conf
1、安装redis(3台)
wget http://download.redis.io/releases/redis-4.0.8.tar.gz
cd /usr/local/
tar xzvf /root/redis-4.0.8.tar.gz
cd redis-4.0.8
make
cd src
make install PREFIX=/usr/local/redis
mkdir /data/redis/log -p
mkdir /data/redis/conf -p
mkdir /data/redis/rdb -p
mkdir /data/redis/run -p
mkdir /data/redis/redis_sentinels -p
cd …
cp redis.conf /usr/local/redis
cd src
cp redis-server /usr/local/redis
cp redis-benchmark /usr/local/redis
cp redis-cli /usr/local/redis
cd /usr/local/redis
cd /usr/local/redis/bin/
cp redis-server /bin/
cp redis-cli /bin/
cd /usr/local/redis-4.0.8/src
cp redis-trib.rb /bin/
2.撰写redis配置文件(2台)
vi /data/redis/conf/redis6379.conf
bind 0.0.0.0
daemonize yes
pidfile "/data/redis/run/redis-6379.pid"
port 6379
tcp-backlog 511
timeout 300
tcp-keepalive 0
loglevel notice
logfile "/data/redis/log/redis-6379.log"
maxmemory 10gb #内存的5/8
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump-6379.rdb"
dir "/data/redis/rdb"
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly yes
appendfilename "redis-6379.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
#cluster-enabled yes
#cluster-config-file nodes-6379.conf
#cluster-node-timeout 15000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
# Generated by CONFIG REWRITE
masterauth "mypassword"
requirepass "mypassword"
3.撰写sentinel配置文件(2台)
vi /data/redis/conf/redis-sentinel6379.conf
daemonize yes
port 26379
dir "/data/redis/redis_sentinels"
pidfile "/data/redis/run/sentinel6379.pid"
logfile "/data/redis/redis_sentinels/sentinel6379.log"protected-mode no
sentinel monitor master6379 10.18.30.43 6379 2 #主ip
sentinel client-reconfig-script master6379 /opt/notify_master6379.sh
sentinel auth-pass master6379 mypassword
sentinel config-epoch master6379 1
4.撰写漂移VIP的脚本(2台)
vi /opt/notify_master6379.sh
#!/bin/bash
MASTER_IP=$6
LOCAL_IP='10.18.33.91' #从库修改为10.18.33.92
VIP='10.18.33.247'
NETMASK='24'
INTERFACE='eth0'
if [ ${MASTER_IP} = ${LOCAL_IP} ]; then/sbin/ip addr add ${VIP}/${NETMASK} dev ${INTERFACE}/sbin/arping -q -c 3 -A ${VIP} -I ${INTERFACE}exit 0
else/sbin/ip addr del ${VIP}/${NETMASK} dev ${INTERFACE}exit 0
fi
exit 1
chmod +x /opt/notify_master6379.sh
5.开放端口 6379 26379(3台)
6.启动redis服务(2台)
/usr/local/redis/redis-server /data/redis/conf/redis6379.conf
7.初始化主从(从库执行)
/usr/local/redis/redis-cli -p 6379 -a mypassword slaveof 10.18.33.91 6379
8.绑定VIP到主库
/sbin/ip addr add 10.18.33.247/24 dev eth0
9.启动sentinel服务(3台)
/usr/local/redis/redis-server /data/redis/conf/redis-sentinel6379.conf --sentinel
10.检查replication与Sentinel是否配置成功
/usr/local/redis/redis-cli -h 10.18.33.91 -p 6379 -a mypassword info Replication
/usr/local/redis/redis-cli -h 10.18.33.91 -p 26379 -a mypassword info Sentinel
10:验证是否实现了高可用
/usr/local/redis/redis-cli -h 10.18.33.91 -p 6379 -a mypassword shutdown
/usr/local/redis/redis-cli -h 10.18.33.92 -p 6379 -a mypassword info Replication
/usr/local/redis/redis-cli -h 10.18.33.91 -p 26379 -a mypassword info Sentinel
Redis高可用架构 (redis主从+sentinel)相关推荐
- Redis高可用架构-Redis集群,一文get三种方式
前言 容量不够,redis如何进行扩容? 并发写操作, redis如何分摊? 另外,主从模式,薪火相传模式,主机宕机,导致ip地址发生变化,应用程序中配置需要修改对应的主机地址.端口等信息. 之前通过 ...
- 教你用 3 台机器搞定一个 Redis 高可用架构
转载自 教你用 3 台机器搞定一个 Redis 高可用架构 基于内存的 Redis 应该是目前各种 Web 开发业务中最为常用的 key-value 数据库了. 我们经常在业务中用其存储用户登陆态 ...
- 带哨兵节点的链_深入学习Redis高可用架构:哨兵原理及实践
原标题:深入学习Redis高可用架构:哨兵原理及实践 " 在上篇文章<深入学习 Redis 高可用的基石:主从复制>中曾提到,Redis 主从复制的作用有数据热备.负载均衡.故障 ...
- Redis高可用架构
目录 Redis持久化 RDB持久化 AOF持久化 Redis cluster 节点间内部通信原理 分布式寻址算法 Redis cluster主备切换原理 生产环境中redis部署 Redis reh ...
- 深入学习Redis高可用架构:哨兵原理及实践
Redis 主从复制的作用有数据热备.负载均衡.故障恢复等:但主从复制存在的一个问题是故障恢复无法自动化. 本文将要介绍的哨兵,它基于 Redis 主从复制,主要作用便是解决主节点故障恢复的自动化问题 ...
- 【Redis】Redis高可用之Cluster主从模式详解(Redis专栏启动)
- 【Redis】Redis高可用之Redis Cluster集群模式详解(Redis专栏启动)
- 携程数据库高可用架构实践
作者:携程技术团队,来自:DataFunTalk 导读: 我们推荐使用数据库三副本,一主一从一异地容灾.如果想要节省成本,也可以只保留两副本,但是一旦其中一台服务器发生故障,服务器维修时间会比较长,那 ...
- 如何保证 Redis 高可用和高并发(主从+哨兵+集群)
1. 概述 Redis 作为一种高性能的内存数据库,普遍用于目前主流的分布式架构系统中.为了提高系统的容错率,使用多实例的 Redis 也是必不可免的,但同样复杂度也相比单实例高出很多. 那么如何保证 ...
最新文章
- 厉害的组件_企业级React UI组件库——React Suite
- 【以太坊】web3.js的1.0版本和0.2.0版本的安装及区别
- 如何快速增加网站收录?
- 【c++】29.设计模式总结
- Python 3.X 要使用urllib.request 来抓取网络资源。转
- 牛客 - 街机争霸(bfs)
- Atom插件主题推荐
- ef ddl生成不了脚本_如何使用Hibernate从Play生成DDL脚本! 框架项目
- 如何在GPU上产生随机数
- Understanding .NET Code Access Security
- Linux下patch打补丁命令
- 为Bootstrap模态对话框添加拖拽移动功能
- 激光雷达RPLidar的配置(arduino和rasberrypi)
- AN APPROACH OF VECTOR FIELD TEXTURE VISUALIZATION BASED ON FIELD DRIVEN STRENGTH算法实现
- 车联网智能终端GB/T 32960国标协议规范 、国标新能源车联网终端GB/T32960标准T-BOX应用
- 学霸的迷宫 - 广搜例题
- 音频直播,这里面到底有多少坑
- 可提高生产力的实用工具集锦
- 2020 全球经济正进入衰退期
- 安卓手机管理_安卓手机清理大师app下载-安卓手机清理大师下载v1.0.0安卓版
热门文章
- WordPress注册登录注册系统插件
- python模拟登记获取cookie_Python爬虫实战入门四:使用Cookie模拟登录——获取电子书下载链接...
- python都用什么写代码_python都用什么写代码
- 百度SEO网页背景渐变色代码
- 商标申请流程图及时间_长沙注册商标面要多长时间及注册申请流程
- 项目是采用目前比较流行的 SpringBoot/SpringCloudAlibaba构建新零售微服务电商项目
- PHP网站管理系统-EBCMS易贝管理系统 v1.2.0
- 招商银行网站在chrome中 布局出现大问题,如图
- 为什么Linux不需要碎片整理?
- Netbeans加入CI的代码提示