目录
一、Redis是什么
用C语言开发的一个开源的高性能键值对( key-value )内存数据库,常用于分布式缓存。
二、Redis的应用场景
- 缓存使用,减轻DB压力
- DB使用,用于临时存储数据(字典表,购买记录)
- 解决分布式场景下Session分离问题(登录信息)
- 任务队列(秒杀、抢红包等等) 乐观锁
- 应用排行榜 zset
- 签到 bitmap
- 分布式锁
- 冷热数据交换
三、HA高可用方案
单个节点是无法保证高可用的,所以需要使用集群方案,这也是分布式服务中常用的手段。
3.1 主从复制
用于读写分离和数据容灾。
原理:
- 从节点和主节点建立Socket连接
- 进行身份校验(权限),之后开始同步数据(RDB全量复制)
- 进入命令传播(增量复制,主节将点写命令传播给从节点),向主节点发送心跳
缺点:该模式下无法自动故障转移,如果主节点宕机,只能手动切换从节点。
3.2 Sentinel哨兵模式
该模式就是为了满足自动故障转移的需要而对主从复制的升级,在主从节点之上加入了Sentinel