redis

Redis是一个基于内存的key-value数据库,常用于快速缓存和实现分布式锁。其支持读写分离,提供多种数据结构如String、Hash、List、Set和Zset。Redis的事务具有原子性,但不保证隔离性和持久性。持久化通过RDB(快照)和AOF(操作日志)来实现,哨兵系统则用于监控和自动故障转移,确保高可用性。
摘要由CSDN通过智能技术生成

是什么

一个基于内存的key-value数据库,用于快速缓存,实现分布式锁。

优势

读写分离,性能扩展
容灾性高

基本数据类型

String
Hash
List
Set
Zset(有序集合)
在这里插入图片描述

实现

A写数据
B\C读数据
BC找A要数据,A不会找BC
需要修改 优先级replica-priority 100,哨兵模式默认优先级高的作为宕机后首选替补主机。
指令 slaveof ip +post
A宕机后,无哨兵 BC 死等,A回来之后
有哨兵 假设b优先级高,b替补成为主机, A 回来之后,主机变从机。

redis的事务

事务是什么呢?
多个命令组合成的命令队列。
命令队列不可拆分

原子性,不可分割 ,要么全部做完,要me不做
一致性:各节点的数据完全相同
隔离性:一个事务的执行不能被其他事务干扰,并发的各个事务互相独立互不干扰。
持久性:事务一旦提交,即实现了数据的持久化,对数据库的改变是永久性的

redis中,不存在 隔离级别概念 但存在隔离性,命令序列化之后按顺序执行

不能保证原子性 :命令错误时,全部不会做。

如果运行错误,不会回滚,执行完的就完了,没执行的也会接着执行,错的叉出去宰了。

redis持久化

持久化会单独创建子进程fork进行操作,
fork子进程复制当前进程一样的进程。

RDB

持久化规则:save 手动保存 60 5 每60s进行5 次 持久化操作
bgsave:异步进行快照。同时可以响应客户端请求
将数据写进临时文件,持久化进程结束替换旧版本文件,

适用

大规模数据恢复
对数据完整没要求

AOF

记录操作,复刻操作来进行数据恢复
三种同步规则
始终同步:redis操作的影子、
每秒同步:每秒记录一次操作,丢失秒数据
no 不做决定,交给操作系统决定。

优势:稳健 数据丢失概率低
劣势 占用磁盘空间大
性能压力

三种模式

主从复制

主机写,从机读主机数据进行同步

一主二从

主机宕机,从机死等

薪火相传

主机宕机 从机可成为下一个从机的master 不具有写能力,但仍然保持数据链接

哨兵开启

监控:心跳检测,是否宕机
故障检测:
一旦主节点被标记为“客观下线”,哨兵会从剩余的从节点中选举一个新的主节点。选举的过程会根据一定的规则和优先级进行,确保选出的新主节点是可用的。一旦新的主节点选出,哨兵会通知所有其他哨兵和客户端关于主节点的变化。

与其他哨兵共享信息,甲看a宕机了,乙说没宕机,丙也说a没有宕机,那么出问题可能不是a而是哨兵

主机宕机后,从机选主规则:优先级、数据偏移量(数据完整性)、运行最长时间的节点作为新主机。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的码农老牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值