Redis 高性能

Redis 有多快?

Redis 每秒读达到了 106 级别,写也达到了 8*105 级别。

Redis 快的原因?

Redis 是基于内存的,以键值对的形式,通过单线程模型和多路复用,并且还使用 pipeline 的管道机制。

什么是多路复用?

Redis 的底层通信也是基于 TCP/IP 协议的。所以每当客户端向服务端发起读/写请求,都必须建立连接。而当连接建立完后,Redis 并不是开启一个线程去处理客户端的请求,而是将其挂载文件符表上,然后使用 epoll 机制,每当有数据传到客户端时,都会通知主线程来进行处理,从而避免了线程创建、切换的开销,并且更简便的实现同步机制。

什么是 PIPE 管道?

众所周知,Redis 是 C/S 架构,即客户端/服务器模型。

Redis 的执行命令过程为:发送命令 -> 命令在网络传输 -> 命令在服务器排队 -> 命令执行 -> 返回结果。

我们知道,CPU 的速度比网络的速度快得多,所以影响 Redis 性能的最大因素是网络。于是 Redis 为了减少网络传输的次数,会采用 pipeline 的批量处理机制,将多个无关命令打包一起,再发送出去,而不是一条条发送。

如何做内存上的优化?

  • 控制 key 的数量
  • 缩减简直对象,降低 redis 内存使用最直接的方式就是缩减键和值的长度
  • 编码优化,使用更好的数据类型
updatedupdated2022-06-232022-06-23