redis题目

redis题目_第1张图片
redis题目_第2张图片
1.数据结构:是什么,怎么用
五种
String:
哈希表:存一些结构化的数据
扩展的:bigmap,布隆过滤器,
bigmap:上千万亿级别的用户状态,比如:web,app的用户签到

2.高可扩展:扩容,切片集群,数据分布,数据迁移
3.高性能保证:为什么快?,为什么又满了?

4.高可用技术:数据持久化,主从复制,哨兵机制,数据一致性

1.Redis的优缺点各是什么?

redis题目_第3张图片
优点:快,数据类型丰富
缺点:内存数据库(场景-持久化)

2.Redis的AOF和RDB机制各是什么?有什么区别?

redis题目_第4张图片
AOF相当于记日志
RDB快照
性能影响,数据丢失影响,对外提供服务影响

3. Redis是不是单线程架构

redis题目_第5张图片

原理+扩展

原理:redis线程模型,在做一写请求处理,键值对读写的时候,实际上有一个主线程在做处理。
扩展:redis有一些子进程,有一些线程做一步操作,比如RDB就是通多fork机制,创建一个子进程把内存数据写盘。
实际上将redis单线程是说,

  1. 它主的io,键值对读写是单线程的,
  2. 但是,在做一些耗时操作时,RDB fork机制镜像落盘
  3. 还有些惰性删除,通过异步线程实现

redis网络通信resp协议请求解析,这个比较耗时,6.0就是把这部分改成多线程,键值对存取还是单线程
这个存取单线程请求解析多线程之间通过队列来做请求交互

4.Redis的Hash表会装满吗?装满了怎么办?

redis题目_第6张图片redis其实全局就是个hash表,数据结构也有hash
主要考察hash表工作机制
hash表有

  • 静态哈希:桶大小固定好了,就那么多。
  • 动态哈希:
    随着数据越来越多,会产生哈希冲突,怎么解决哈希冲突
    redis是通过channelhash,链式哈希,但是连太长性能不好,就会有rehash。
    rehash怎么做?
    rehash潜在影响?
    rehash对redis整体键值对影响?

5.redis的性能突然变慢了,有什么好办法?

redis题目_第7张图片

  1. 操作不能太复杂,集合操作,可以分批
  2. bigkey,拆解
  3. io,scan

计算机系统变慢就是资源出问题, 四个方面。

  1. cup,一般就是时间复杂度(比如集合操作,kiss导致哈希表全表扫描)
  2. 内存,1大块内存,2内存回收问题(突然一下子删除大量key)
  3. 磁盘io,
  4. 网络io,大key把网卡打满(1K对比1M),或者请求多把网卡打满

你可能感兴趣的:(Redis,redis,架构,缓存)