redis-备忘录

redis备忘录

redis 总结

1.数据类型

string 
hash   
list  可做消息队列
set 无序 商品排行
zset 有序 热点数据
geohll  地理位置
发布订阅
redis事务
        1.单线程,开始事务时,死循环时,其它操作不能执行 
        2.在执行命令操作时,发生了死循环,其他操作不能执行,只能重启redis才能执行。
lua脚本 
        批量执行命令
        原子性
        操作集合的复用 
数据淘汰和内存回收
定时过期,设置key的过期时间,到期过期
惰性过期,key被访问的时候才会判断是否过期,过期则删除 
定期过期,每隔一段时间清除一定数量的过期的可以、

2持久化机制

 rdb:默认开启,可进行配置,多久一次生成rdb文件,shutdown/flushall时触发rdb。内存紧凑
 不影响主进程,恢复大数据集速度快
同步频率
    aof:日志形式记录命令,默认不开启,每秒执行一 次。最多丢失一秒钟的数据,数据实时性较好,但是数据同步大数据的时候比较慢。
当aof文件越来越大的时候该怎么做?
redis 提供了一种重写机制, redis会设置一个数值
(auto-aof-rewrite-percentage 100;auto-aof-rewrite-min-size 64mb),当超过这个数值的时候,触发重写机制,会把数据进行压缩。

pipeline 管道机制

解决大量插入数据时很慢的情况。
一次添加数据为什么会慢
因为,client 和sever 是基于tcp协议进行交互的,每次数据添加都要进行请求和响应,而且是单线程模式,下一次添加数据只能进行等待

3主从复制

配置文件  slaveof ip port
命令  config slaveof ip port

原理

连接:当配置了主从复制的时候,slave结点会保存masterip信息,会有一个定时器定时去请求master结点是否需要连接,并建立网络连接,同时会生成一个数据文件处理器,例如接受master结点数据等
数据同步:master在进行数据同步的时候 会执行bgsave命令生成一个rdb文件,并把rdb文件传输给slave结点,传输过程中,client写入的数据会缓存在master内存中,当rdb文件传输完成是,在把内存缓存的数据同步到slave。当然在传输的过程中会发生	网络异常,传输中断,网络恢复时,会通过offset偏移量继续传输,通过replication命令可查看偏移量。
命令传输: master 异步复制传播到slave结点

4 哨兵sentinel

具有 监控,通知,自动故障转移,配置管理(通过sentinel获取master结点的信息)功能。
提高redis的高可用,自动主从切换。
每个setinel都会监控master结点和多个slave结点,client会通过sentinel获取master结点信息,然后连接master结点.

在这里插入图片描述
sentinel 原理

主观下线
	sentinel定时会向master结点和slave结点发送ping命令,在一段时间(通过down-afer-millionssecond:1xxxx 配置)不回复时,会把结点标记为主观下线。当然当发生网络异常sentinel无法监控子节点的时候也会被标记为主观下线,此时并不能确定结点是否真正发生故障。
 客观下线
	当某个redis结点被sentinel标记为主观下线的时候,当前哨兵结点会询问其它哨兵结点,当多数哨兵结点也确定为主观下线的时候,就会真正的标记当前redis结点为故障。		
自动故障转移
	当master发生客观下线的时候,需要进行自动故障转移。
	1.选举哨兵leader (通过raft共识算法进行选举)
	2.哨兵leader开始进行故障转移
	3.通过命令进行主从切换
	slaveof  no  none  其中一个slave结点断开与故障master结点的链接
	slaveof ip  port 重新指向新的master结点
影响slave结点成为master结点的因素
	1.slave与master断开连接的时长
	2.优先级设置,配置文件配置(replication-priority)
	3.offset复制的偏移量
	4.进程pid最小

客户端代理分片

服务端分片cluster

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值