Redis随手记(四)拓展篇

date
Feb 13, 2021
slug
redis-deeper
status
Published
tags
Programming
Redis
summary
type
Page
Year
2021
 
 

Stream

  • Producer/Consumer模型
    • 当consumer消耗消息时需要返回ack, 没有返回ack的msg会存储在consumer的pending_ids
  • 消息是持久化的, 当redis重启之后, 内容还在
    • high availability建立在主从复制上, 又由于redis的复制是async的, 因此会存在可能丢失数据
  • 原生不支持partition
    • 曲线救国: 需要建立多个stream, 客户端按照一定策略produce msg到不同的stream里

Expire

  • 如果有大量的key要过期, 要过期时间设置一个随即范围, 不能在同一时间过期(集中删除)
    • 否则, 会因为redis是单线程而导致卡顿

LRU

  • redis通过LRU懒惰删除需要swap的数据
    • 随机采样出一定数量的key然后再swap
      • 如果空间仍不够再采样swap

© wongchihaul 2021 - 2024