Redis总结

数据结构

  1. String
  2. List
  3. Hsah
  4. Set
  5. Zset

分布式锁

实现:设置值加过期时间->set原子命令

注意:无法解决处理超时问题,需人工解决

稍微改进:删除时判断是否是当前线程的设的值再删除->lua原子命令

注意:redis分布式锁实现需要包装set命令,比较复杂,不建议使用

冲突处理

  • 异常
  • sleep
  • 延时队列

延时队列

使用Zset实现

异步队列

使用List实现

注意:消费者要合理使用sleep或使用阻塞度(要超时处理)

过期策略

  • 被访问时判断是否过期
  • 定时删除+循环随机抽取

内存溢出策略

  • 只读
  • 可过期&最少使用->淘汰
  • 可过期&最快过期->淘汰
  • 可过期&随机->淘汰
  • 最少使用->淘汰
  • 随机->淘汰

LRU

  • 字典+双向链表 实现
  • 时间戳+随机采样+淘汰池 淘汰其中时间戳最小的

懒惰删除

  • 指令删除
  • 同步rdb后异步清空
  • 内存溢出时淘汰
  • 过期删除
  • unlink删除
  • 异步清空

异步刷盘

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值