穿透、回种、熔断
主从:mysql复制备份 分片:将大数据打碎,分配到不同物理机节点的分区方案
redis3.0之后支持分片
选型:普通KEY-VALUE用Mencache。有持久化需求,和数据主从、分片等高级应用,采用Redis.
单进程,单线程,c语言实现,k-v数据库。数据存储在内存 不使用表,不强制数据进行关联,比关系型数据库性能高出不止一个量级 键值对存储类似HashMap查找操作都是O(1) 此单线程指处理网络请求(主线程是单线程的,包含主线程io处理,io对应相关业务处理,过期键处理,父子协调,集群协调。这些除了io事件的逻辑被封装成周期性任务,由主线程周期性处理,因为单线程,所有请求串行处理 )因此多客户端请求不会有并发问题,避免上下文切换和锁竞争。一个正式的RedisServer运行肯定不止一个线程(Redis进行持久化的时候会以子进程\子线程) 单线程可接收并发、不是并行 单线程配合io多路复用,大幅度提升性能 网络等原因制约Redis并发处理量不能进一步上升:QPS10W+峰值时,cpu没有跑满不是制约Redis性能的原因,单核单线程不是制约的原因,可以利用多核开启多个Redis IO多路复用(非阻塞)NIO
Select(监听)监控文件可读可写的文件描述符,返回满足条件个数个数
操作系统不同,因地制宜,select保底方案复杂度O(N) epoll->Linux kqueue->MacOs React实现文件处理器,通过多路复用,实现对多个fd监控,满足条件触发回调。保证了Redis性能,也保证了服务的简单