Redis MySQL简单对比

Redis

  • 基于内存,速度快
  • key,value格式
  • worker 单线程
  • epoll io 并发(串行)

epoll 可以直接获取到是哪一个事件在进行读写操作,并且对其进行操作

场景:多个客户端访问服务器。

  1. redis通过epoll知道是那个客户端要进行读写
  2. redis 读取客户端的io数据

io两个阶段:1 获取客户端访问状态(读/写) 2 进行读写 IO操作

  1. 对数据进行操作

MySQL数据库:
客户端访问服务器,当单个服务器只能承受一百个客户端访问时,此时来了两百个客户端,需要进行负载均衡,添加一个服务器进行分担。
此时,两个服务器访问数据库(看起来是两个服务器并行操作),实则在修改数据库是可能出现问题。需要加锁。(实际上是串行的)
多线程成本相对单线程高一些。
Redis MySQL简单对比_第1张图片
Redis:
本身就是单线程处理,不需要锁,但是效率要高很多
Redis MySQL简单对比_第2张图片

但是计算机是多核的,单线程会造成资源浪费。原先单线程执行步骤:读c1 -> 计算c1 -> 写c1 -> 读c2 -> 计算c2 -> 写c2
Redis MySQL简单对比_第3张图片
Redis 6.x版本后加入io threads :使用多线程可以让不同的线程执行不同阶段,提高效率,三个线程,一个负责计算,一个负责c1读写,一个负责c2读写,极大的提高了速率
Redis MySQL简单对比_第4张图片

你可能感兴趣的:(Redis,数据库)