【Redis】知识体系结构构建以及常见考题汇总
- 1、思维导图
- 2、Redis体系结构:原理、部署
- 2.1、Redis实现原理
- 2.1.1、Redis中数据结构
- 2.1.2、不同对象的数据类型(基本类型、特殊类型)
- 2.2、Redis部署
- 2.2.1、基本配置(缓存的更新、删除和淘汰、数据(缓存和数据库)问题)
- 2.2.2、分布式部署(持久化、主从、故障恢复(哨兵)、分片)
- 数据持久化RDB、AOF
- 主从读写分离、故障恢复(哨兵集群)
1、思维导图
redis基于内存的nosql数据库、常用于mysql的缓存数据库
特点:基于内存、单线程(执行命令是单线程,为了确保原子性命令)、IO多路复用、键值对存储的数据库
2、Redis体系结构:原理、部署
2.1、Redis实现原理
小林coding中Redis的数据结构
2.1.1、Redis中数据结构
由Redis键值数据库的数据结构设计出发,一直解析到真正存储key和value的数据结构,其中value的指针指向的数据结构redisobject对象(可以是String 对象,也可以指向集合类型的对象,比如 List 对象、Hash 对象、Set 对象和 Zset 对象。)
2.1.2、不同对象的数据类型(基本类型、特殊类型)
redisobject对象(可以是String 对象,也可以指向集合类型的对象,比如 List 对象、Hash 对象、Set 对象和 Zset 对象。)
括号中每个具体的对象有不同的底层数据结构实现。
小林coding 中每种数据类型的基本介绍
2.2、Redis部署
2.2.1、基本配置(缓存的更新、删除和淘汰、数据(缓存和数据库)问题)
1、redis作为mysql数据库的缓存数据库,当客户端进行写、读数据时,其中的缓存键值需要更新,
如何更新缓存的问题
数据库和缓存如何保证一致性?
2、redis缓存数据库中一些过期(设置了过期值)的键值需要删除,如何进行删除的策略问题
3、redis作为内存数据库,大小有限制,如果超过了限制,如何删除内存中的缓存数据的问题
Redis 过期删除策略和内存淘汰策略有什么区别?
4、Redis作为mysql数据库的缓存数据库时,那么就会产生三种常见问题:穿透、击穿、雪崩
什么是缓存雪崩、击穿、穿透?
2.2.2、分布式部署(持久化、主从、故障恢复(哨兵)、分片)
数据持久化RDB、AOF
数据持久化
主从读写分离、故障恢复(哨兵集群)
高可用:主从集群、确保主从的故障恢复:哨兵集群