关于Redis

1.Redis的五大数据结构

2.Redis的持久化

Redis DataBase 

RDB,简而言之,就是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上

自动触发

Redis版本6之后发生改变......(RDB快照的频数)

注意:不可以把备份文件 dump.rdb 和 生成Redis的服务器发在同一台机器,防止物理机器损坏备份文件也丢失

注意:flushall/flushdb 和 退出Redis操作都会触发 rdb 规则

手动触发

save 和 bgsave 命令

SAVE 直接调用 rdbSave函数 ,阻塞 Redis 主进程,直到保存完成为止。

bgsave:异步保存数据到磁盘(适合线上)

RDB的优缺点

优点:①、只有一个文件 dump.rdb,方便持久化。

           ②、容灾性好,一个文件可以保存到安全的磁盘

           ③、使用单独子进程来进行持久化,主进程不会进行任何 IO 操作,保证了 redis 的高性能

           ④、4.相对于数据集大时,比 AOF 的启动效率更高

缺点:数据安全性低(若持久化阶段redis故障,会导致数据丢失)

Append Only File

原理:日记 记录所有的操作

三种写回策略

 重写机制

:就是AOF文件压缩,只保留可以恢复数据的最小指令集

AOF的优缺点

优点:1、数据安全(appendfsync属性,可以每秒进行一次操作)

           2、通过 append 模式写文件,即使中途服务器宕机,可以通过 redis-check-aof 工具解决数据一致性问题。

           3、AOF 机制的 rewrite 模式(压缩文件)

缺点:1、AOF 文件比 RDB 文件大,且恢复速度慢。

           2、数据集大的时候,比 rdb 启动效率低。

RDB + AOF

组合的持久化 AOF 主导 !

那可不可以只使用AOF?

--->建议不要,因为AOF保存的在不断变化(或者说只取最新最有效的记录),而RDB保存的比较完全,可以把RDB看作数据库的备份

纯缓存模式

关闭-RDB和AOF--------------------->纯缓存模式

sava " " :禁用RDB

appendonly no:禁用AOF

但是仍可以手动触发RDB,AOF持久化

3.Redis复制机制

Redis的主从复制的主要作用:

①读写分离:主机master只写,从机slave只读(主从结构,一是为了纯粹的备份,二是为了提升读性能)---负载均衡

②故障恢复:主机宕机,从机可以快速故障恢复

优化:主从架构中,可以关闭服务器的持久化操作,只对服务器保持持久化操作,可以提升主服务器的性能!

4.分布式锁

setnx(SET if Not Exists)

抢锁-判断-释放

setnx--->争抢锁,抢到之后,再用 expire 给锁加一个过期时间防止锁忘记了释放

抢锁:RLock -----> tryLock(等待时间,锁释放时间,时间的类型) :尝试获取锁--> setnx?

--->等待时间设置为0,即只抢一次锁,抢不到则放弃(分布式-缓存预热)

判断是否是当前线程的锁:RLock ------> isHeldByCurrentThread() 判断是否是此时线程的锁

释放锁:注意释放锁要写在 finally 中(若中途出现异常,锁最后还是会释放)

看门狗解决锁逾期问题

续期机制:RLock -----> tryLock(等待时间,锁释放时间,时间的类型)

锁释放时间改为 -1 !!!

5.缓存相关问题

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值