redis笔记

文章介绍了Redis的两种持久化机制RDB和AOF,以及它们的优缺点。RDB适合大规模数据恢复,AOF保证数据完整性。接着讨论了缓存雪崩、缓存击穿和缓存穿透的问题及其处理策略,如设置随机过期时间、主从服务器和哨兵服务。最后提到了分布式锁的关键特性,包括互斥性、锁超时释放、可重入性和高可用性等。
摘要由CSDN通过智能技术生成
一、redis持久化

1.1、RDB(redis DataBase):将redis某一时刻的数据持久化到磁盘中,是一种快照式的持久化方法。

1.2、redis在进行持久化过程中,会将数据写入到一个临时文件中,持久化结束后,再将临时文件替代上次持久化好的文件。

1.3、对于RDB方式,redis会单独创建一个fork子进程来进行持久化,而主进程不会进行IO操作,保证redis的高性能。

1.4、如果需要大规模数据恢复,在不在一数据完整性的情况下,RDB比AOF高效。

1.5、缺点,持久化过程中redis宕机,会导致上一次到这一次之间的数据丢失。

2.1、AOF(append of file),只允许追加,不允许改写的文件。

2.2、AOF是将执行过的指令记录下来,在数据恢复时将指令从前到后在执行一遍。

2.3、备份文件大,数据恢复较慢。

二、雪崩、缓存击穿、缓存穿透

1.1、缓存雪崩:大量请求无法命中redis中的数据,只能直接访问数据库。

1.2、出现原因:大量缓存数据同时过期导致请求无法命中。redis宕机,导致请求直接访问数据库。

1.3、处理方式:针对大批量过期时间的,在原始的过期时间上加一个随机过期时间,避免数据在同一时间内过期。针对redis宕机,可以搭建redis主从服务器,并配置哨兵服务,主节点宕机后,可以切换到从节点。

2.1、缓存击穿:缓存击穿与缓存雪崩类似,缓存雪崩时大批量数据过期,缓存击穿是热点数据过期,所有针对热点数据的请求,都需要到数据库处理。

2.2、处理方式:

3.1、缓存穿透:数据在redis和数据库中都没有,请求在redis请求无果后会请求数据库,redis相当于没作用。

3.2、处理方式:设置空值或缺省值,存入redis,注意需要清楚或更redis里数据,当新数据产生时。

三、数据类型

string:字符串

hash:哈希表

list:列表

set:数组

zset:有序数组

四、分布式锁

分布式锁具备条件:

       互斥性:同一时刻,只有一个客户端持有锁。

       锁超时释放:持有锁超时时可以释放,防止死锁。

        可重入性:一个线程获得锁后,可以请求加锁,

        高可用、高性能:加锁和解锁开销要尽可能低,同时保证高可用。

        安全性:锁只能被持有该锁的线程释放。

        容错性:在持有锁的服务崩坏后,锁仍可以释放,避免死锁。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值