Redis的集群:
1、主从结构:读写分离
2、主节点:写数据
从节点(s):读数据
3、集群的架构:2种
(*)星型模型
(*)线型模型
参考讲义;P20
4、使用星型模型,搭建Redis集群
(*)读写分离:从主节点写入数据,从节点读取数据
(*)任务分离:主节点不负责产生rdb和aof,从节点负责产生rdb和aof
(*)配置:三个Redis实例为例
主节点:端口6379
关闭rdb和aof
配置文件:redis6379.conf
关闭RDB
#save 900 1
#save 300 10
#save 60 10000
关闭AOF
appendonly no
从节点:端口:6380 6381
redis6380.conf
port 6380
开启rdb:dbfilename dump6380.rdb
开启aof:appendfilename "appendonly6380.aof"
指定该从节点的主节点:slaveof tanzhou112 6379 (主节点)
redis6381.conf
port 6381
开启rdb:dbfilename dump6381.rdb
开启aof:appendfilename "appendonly6381.aof"
指定该从节点的主节点:slaveof tanzhou112 6379 (主节点)
主节点写入数据
从节点读取
从节点不允许写入
5、注意:如果从节点比较多,不要一次性全部启动,否则会对主节点造成很大压力
aof产生时同步的是日志
三、Redis的HA:哨兵机制
1、主从结构:存在单点故障的问题
2、Redis的HA:版本Redis2.4+,实现了HA的机制:哨兵Sentinel
3、配置Redis的哨兵
(*) 从源码中拷贝配置文件 cp sentinel.conf ~/training/redis/conf/
sentinel monitor mymaster 192.168.157.112 6379 1
别名 mymaster 主节点IP 192.168.157.112 端口 6379 启动几个哨兵 1
vi sentnel.conf
sentinel auth-pass <master-name> <password>
配置连接主节点 密码
sentinel down-after-milliseconds mymaster 30000
表示多少秒内,哨兵没有收到主节点的心跳,就认为主节点死掉,就进行切换
sentinel parallel-syncs mymaster 1
选出新的主节点后,同时允许多少个从节点连接,这个值一定不能太大
sentinel failover-timeout mymaster 180000
失败切换的时候,最大允许时间
4、启动哨兵
bin/redis-sentinel conf/sentinel.conf
日志
11407:X 20 Oct 21:17:04.840 # +monitor master mymaster 192.168.157.112 6379 quorum 1
11407:X 20 Oct 21:17:05.838 * +slave slave 192.168.157.112:6380 192.168.157.112 6380 @ mymaster 192.168.157.112 6379
11407:X 20 Oct 21:17:05.846 * +slave slave 192.168.157.112:6381 192.168.157.112 6381 @ mymaster 192.168.157.112 6379
实验:把6379的主节点杀死
kill -9
日志:
11407:X 20 Oct 21:19:48.331 # +switch-master mymaster 192.168.157.112 6379 192.168.157.112 6380
11407:X 20 Oct 21:19:48.331 * +slave slave 192.168.157.112:6381 192.168.157.112 6381 @ mymaster 192.168.157.112 6380
11407:X 20 Oct 21:19:48.331 * +slave slave 192.168.157.112:6379 192.168.157.112 6379 @ mymaster 192.168.157.112 6380
四、Redis分片
安装TwenProxy
1、tar -zxvf nutcracker-0.3.0.tar.gz
2、指定安装的目录
./configure --prefix=/root/training/proxy
3、make
make install
4、从源码包中拷贝一个配置文件
cp ~/tools/nutcracker-0.3.0/conf/nutcracker.yml conf/
五、大数据实时计算框架:Storm
1、什么是离线计算和流式计算(实时计算)?
举例:自来水厂处理自来水的过程
(*)离线计算:批量获取数据、批量传输数据、周期性的处理数据
典型代表:Sqoop---> 批量导入 ----> HDFS、HBase ----> 周期性通过MapReduce程序处理
(*)流式计算(实时计算):数据实时产生、数据实时传输、数据实时计算
典型代表:Flume---> Kafka缓存数据 ---> 数据输入的到Storm处理 ----> 结果保存Redis
2、常见的实时计算的框架
(*)Apache Storm
(*)JStorm:阿里巴巴开发
(*)Spark Streaming:把流式数据抽象成一个RDD(弹性分布式数据集)
(*)Apache Flink 实战时有涉及
3、Apache Storm体系结构