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