Redis主从、事务、哨兵、消息、代理分片
安装
wget http://download.redis.io/releases/redis-3.0.5.tar.gz
tar -zxvf redis-3.0.5.tar.gz
cd redis-3.0.5
make
make PREFIX=/opt/moudles/redis install
命令脚本
cd /opt/moudles/redis/bin
redis-benchmark 压力测试工具
redis-check-aof 检查AOF日志文件
redis-check-dump 检查RDB快照文件
redis-cli 客户端
redis-sentinel 哨兵,实现主从复制的HA(2.4之后版本)
redis-server 启动和停止redis server
核心配置文件
从源码中拷贝到安装目录
cd /opt/moudles/redis
mkdir conf
cp /opt/moudles/redis-3.0.5/redis.conf conf/
1. port 6379
2. daemonize no # 是否以后台运行的方式启动redis
bin/redis-server conf/redis.conf # 启动redis
ps -ef|grep redis
bin/redis-cli
事务
Oracle会自动开启事务,其本质是只要写入到日志就算事务提交成功。
Oracle内存中维护一个检查点队列,保存的都是脏数据(还没有写入到硬盘文件上的数据)
redis的事务,把事务中每条命令都写入到队列,最后再提交
MULTI
INCRBY foo 1
DECRBY bar 1
EXEC
如果写入到队列,还没有执行EXEC,其中某个key已被修改,这种场景事务不应该被提交成功;则需要WATHCH监视key:
WATCH foo
MULTI
INCRBY foo 1
DECRBY bar 1
EXEC
消息机制
- 消息可以是字符串也可以是对象
- 消息类型:点对点QUEUE、群发广播TOPIC
publish 频道的名称 消息的内容 psubscrible 可以使用通配符,接收多个频道的消息
redis主从复制
- 是主从架构,就存在单点故障的问题
- 作用:
- 实现读写分离:默认主节点负责写,从节点负责读
- 实现任务分离:主节点不再负责生产RDB和AOF文件,由从节点产生
主从架构模型

星型模型(使用较多) - 效率高 - HA切换复杂
线型模型 - 效率低 - HA切换方便

主: 修改master的redis.conf
关闭RDB
# save 900 1
# save 300 10
# save 60 10000
关闭AOF
appendonly no
从6380: 修改slave的redis6380.conf
port 6380
dbfilename dump6380.rdb
appendfilename "appendonly6380.aof"
slaveof 主节点地址
从6381: 修改slave的redis6381.conf
port 6381
dbfilename dump6381.rdb
appendfilename "appendonly6381.aof"
slaveof 主节点地址
# 如果是单机模拟,slaveof要指定ip地址,如果是阿里云服务器,需要在控制台开放安全组规则(端口)6379、6380、6381,包括下文中的哨兵:26379
启动:
bin/redis-server conf/redis6379.conf
bin/redis-server conf/redis6380.conf
bin/redis-server conf/redis6381.conf
bin/redis-cli -p 6379
bin/redis-cli -p 6380
bin/redis-cli -p 6381
哨兵

- redis2.4以后支持,在这之前可以借助zookeeper实现HA
- 启动三个实例:
哨兵核心配置文件:sentinel.conf
cd /opt/moudles/redis
cp /opt/moudles/redis-3.0.5/sendtinel.conf conf/
关键参数配置:
port: 26379
sentinel monitor <master-name> <ip> <redis-port> <quorum>
- <master-name>:主机别名
- <ip> <redis-port>:ip和端口
- <quorum>:几个哨兵(一般至少需要2个)
sentinel auth-pass <master-name> <password>
> 如果主节点配置了密码,在这里配置哨兵连接主节点的密码
sentinel down-after-milliseconds <master-name> <milliseconds>
> 默认:sentinel down-after-milliseconds mymaster 30000
> 如果30秒没有收到主节点的心跳,将会进行主节点切换
sentinel parallel-syncs mymaster 1(重要)
这个参数一定不能太大,选举新的主节点后,允许同时连接的从节点的个数
- Default is 3 minutes.
sentinel failover-timeout mymaster 180000
默认如果在3分钟内HA没有切换成功,则认定切换失败
启动:
bin/redis-sentinel conf/sentinel.conf

kill 杀掉Master进程,模拟宕机;(如果是在一台机器上部署,配置一个哨兵才可以看到具体切换的日志信息)

代理分片
哨兵是针对主节点,通过代理分片可以实现多个从节点之间负载均衡。

安装 nutcracker-0.3.0.tar.gz
wget https://github.com/twitter/twemproxy/archive/master.zip
需要编译安装:
详见:
https://www.cnblogs.com/kevingrace/p/5685401.html
配置
cd /opt/moudles/redisproxy
mkdir conf
cp /opt/moudles/nutcracker-0.3.0/conf/nutcracker.yml conf/
servers: //这里配置了两个分片
- 182.48.115.237:6379:1
- 182.48.115.238:6379:1
检查配置:
./nutcracker -t conf/nutcracker.yml
启动代理:
./nutcracker -d -c conf/nutcracker.yml
# 使用redis-cli直接连接到代理即可:
bin/redis-cli -h 代理ip -p 22121
Redis主从、事务、哨兵、消息、代理分片的更多相关文章
- 关于redis主从|哨兵|集群模式
关于redis主从.哨兵.集群的介绍网上很多,这里就不赘述了. 一.主从 通过持久化功能,Redis保证了即使在服务器重启的情况下也不会损失(或少量损失)数据,因为持久化会把内存中数据保存到硬盘上,重 ...
- 自动配置redis主从和哨兵
redis shell 每次创建redis主从和哨兵服务,文件夹要复制好几个,配置文件改一大堆.繁琐还容易出错,就想通过shell脚本自动帮我配置好端口以及文件,下面就是脚本内容: redis-to ...
- redis主从|哨兵|集群模式
关于redis主从.哨兵.集群的介绍网上很多,这里就不赘述了. 一.主从 通过持久化功能,Redis保证了即使在服务器重启的情况下也不会损失(或少量损失)数据,因为持久化会把内存中数据保存到硬盘上,重 ...
- Redis 主从、哨兵Sentinel、Jedis
Redis 主从.哨兵Sentinel.Jedis 2017年02月15日 15:52:48 有且仅有 阅读数 6183 文章标签: redis主从sentineljedis 更多 分类专栏: 7/1 ...
- docker部署redis主从和哨兵
docker部署redis主从和哨兵 原文地址:https://www.jianshu.com/p/72ee9568c8ea 1主2从3哨兵 一.前期准备工作 1.电脑装有docker 2.假设本地i ...
- docker安装redis主从以及哨兵
docker安装redis主从以及哨兵 本文使用docker在四台机器上部署一主二从三哨兵的Redis主从结构. 服务器配置 192.168.102.128 主节点 centos7.5 192.168 ...
- redis 主从、哨兵、集群
出处: redis主从复制和哨兵 Redis集群方式共有三种:主从模式,哨兵模式,cluster(集群)模式 一.Redis主从复制 主从复制:主节点负责写数据,从节点负责读数据,主节点定期把数据同步 ...
- redis 主从同步&哨兵模式&codis
主从同步 1.CPA原理 1. CPA原理是分布式存储理论的基石: C(一致性): A(可用性): P(分区容忍性); 2. 当主从网络无法连通时,修改操作无法同步到节点,所以“一致性”无法满足 ...
- Redis主从、哨兵、集群
主从 命名设置:>6380 slaveof 127.0.0.01 6379 slaveof on one----------配置:-- 注意一点: 一定开启rdb,不能使用aof从节点配置:主节 ...
- redis主从配置+哨兵模式
1.搭建redis主从,一个master两个slave,加一个哨兵监听(sentinel),可以新建三个虚拟机,模拟环境,我的电脑没那么多虚拟机,就在一台虚拟机上弄的. 2.安装redis,如果是三台 ...
随机推荐
- Redis 命令二
一.连接控制 QUIT 关闭连接 AUTH (仅限启用时)简单的密码验证 二.适合全体类型的命令 EXISTS key 判断一个键是否存在;存在返回 1;否则返回0; DEL key 删除某个key, ...
- 9.11排序与查找(一)——给定两个排序后的数组A和B,当中A的末端有足够的缓冲空间容纳B。将B合并入A并排序
/** * 功能:给定两个排序后的数组A和B,当中A的末端有足够的缓冲空间容纳B.将B合并入A并排序. */ /** * 问题:假设将元素插入数组A的前端,就必须将原有的元素向后移动,以腾出空间. ...
- MSSQL注入SA权限不显错模式下的 入 侵
一般新手扫到不显错的SA(systemadmin)的注入点时,虽然工具能猜表列目录但还是很麻烦有的人就直接放弃了,今天我给大家演示下如何利用.方法很简单大家看操作. 我这里使用的是 火狐的插件提交参数 ...
- 【MVC4】依頼注入
※本文参照<ASP.NET MVC 4高级编程>
- POJ2536 Gopher II【二分图最大匹配】
题目链接: http://poj.org/problem? id=2536 题目大意: 有N仅仅鼹鼠和M个洞穴,假设鼹鼠在S秒内不可以跑到洞穴,就会被老鹰捉住吃掉. 鼹鼠跑的速度为V米/秒. 已知一个 ...
- mybatis学习笔记(10)-一对一查询
mybatis学习笔记(10)-一对一查询 标签: mybatis mybatis学习笔记10-一对一查询 resultType实现 resultMap实现 resultType和resultMap实 ...
- 【Excle】在重复数据中对日期排序并查询最新的一条记录
现在存在以下数据: 需要查询出以下数据 姓名 日期 张三 2017-12-14 李四 2017-12-16 在E1中写入以下公式:=IF(D2=MAX(IF($C$ ...
- Windows重装系统
本文主要针对那些不会重装系统windows的用户,虽然重装系统win7或win10很简单,但是还是有一些小白不明白如何安装新系统,也不清楚有几种安装方式.本教程现在就详细的讲讲利用U盘重装系统的具体步 ...
- HTML5+CSS3学习笔记(一) 概述
HTML5+CSS3概述 HTML5和CSS3不仅仅是两项新的Web技术标准,更代表了下一代HTML和CSS技术.虽然HTML5的标准规范还没有正式发布,但是未来的发展前景已经可以预见,那就 ...
- HTML5 2D平台游戏开发#10Wall Jump
这个术语不知道怎么翻译比较贴切,但并不妨碍对字面意思的理解,大概就是飞檐走壁.比如: 这是游戏<忍者龙剑传>中的场景,玩家可以通过操纵角色在墙面上移动并跳跃. 首先需要实现角色抓墙这一动作 ...