Redis官方在今年5月份正式推出了6.0版本,这个版本中有很多的新特性。所以,6.0刚刚推出,就受到了业界的广泛关注。
所以,在课程的最后,我特意安排了这节课,想来和你聊聊Redis 6.0中的几个关键新特性,分别是面向网络处理的多IO线程、客户端缓存、细粒度的权限控制,以及RESP 3协议的使用。
其中,面向网络处理的多IO线程可以提高网络请求处理的速度,而客户端缓存可以让应用直接在客户端本地读取数据,这两个特性可以提升Redis的性能。除此之外,细粒度权限控制让Redis可以按照命令粒度控制不同用户的访问权限,加强了Redis的安全保护。RESP 3协议则增强客户端的功能,可以让应用更加方便地使用Redis的不同数据类型。
只有详细掌握了这些特性的原理,你才能更好地判断是否使用6.0版本。如果你已经在使用6.0了,也可以看看怎么才能用得更好,少踩坑。
首先,我们来了解下6.0版本中新出的多线程特性。
从单线程处理网络请求到多线程处理在Redis 6.0中,非常受关注的第一个新特性就是多线程。这是因为,Redis一直被大家熟知的就是它的单线程架构,虽然有些命令操作可以用后台线程或子进程执行(比如数据删除、快照生成、AOF重写),但是,从网络IO处理到实际的读写命令处理,都是由单个线程完成的。
随着网络硬件的性能提升,Redis的性能瓶颈有时会出现在网络IO的处理上,也就是说,单个主线程处理网络请求的速度跟不上底层网络硬件的速度。
为了应对这个问题,一般有两种方法。
第一种方法是,用用户态网络协议栈(例如