介绍一下redis?
redis是一个基于内存的,key-value键值对的、支持持久化的非关系型数据库。并且提供了非常丰富的数据结构和功能特性。
数据结构
- 字符串:比较常用
- 列表:顺序性
- 哈希:存储对象
- 集合:
- 有序集合
- 位图
- 超日志 (支持去重)
- 发布订阅模式(重点)
缓存穿透、击穿、雪崩
数据库与redis的数据一致性问题
- 延时双删
- 更新数据库+重试机制
- 异步删除缓存(基于binlog日志)
redis持久化
RDB:
1. 性能高(二进制)
2. 文件紧凑
3. 可能丢失数据
AOF:
AOF缓冲区 === 建议1s执行一次
日志重写,三次针对同一个key的写操作,只保留最后一个
1. 数据更加可能
2. 文件较大
3. 恢复速度较慢
redis通信方式?
自定义的RESP协议,位于TCP之上。