2020年初,远程办公与直播授课成为国民刚需,腾讯因此免费开放可支持300人同时在线会议的“腾讯会议”。一时之间,这款软件的用户呈爆发性增长,据统计,腾讯会议一天就有近较100倍日常的会议数量。

谈及此处,我们不得不佩服腾讯会议日常承接这么一个高并发容量之后,用户使用感依然是高清晰流畅无卡顿。我们都知道,在高并发分布式的系统中,缓存是必不可少一部分,没有缓存对系统的加速和阻挡大量的请求直接落到系统的底层,系统是很难撑住高并发的冲击,所以分布式系统中缓存的设计是很重要的一环。

常用的分布式缓存包括Redis、Memcached和Tair,因为Redis提供的数据结构比较丰富且简单易用,所以Redis的使用广泛。而腾讯会议中也是应用了Redis技术,所以才可以满足用户需求的同时,带来稳定与扩展。

为什么分布式中一定有Redis的存在?它本身又有哪些特性?为什么说它是必不可少的一环?

就像《工作后的程序员,该如何有效提升?》中提到一样,“如果你觉得以上问题,你已经完全掌握,接下来思索更高大上一点的技术,如微服务、分布式、读写分离、主从备份、高并发分布式、集群、负载均衡等等。”

高并发分布式技术是每一个通往高级程序员的必备学习技术,而在项目中使用Redis,无非是从两个角度去考虑:性能与并发。当然,。它还可以做分布式锁等其它一些功能。

性能方面,我们在碰到需要执行耗时特别久,且结果不频繁变动的SQL,就特别适合将运行结果放入缓存。这样,后面的请求就去缓存中读取,使得请求能够迅速响应,而且可以随时取消或中止。所以给予用户绝佳体验。这也是Redis受欢迎所在。

当某个时刻所有用户同时发出请求,直接访问数据库时,在如此高并发情况下,数据库会因为负载过量会出现连接异常。这时就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问数据库,这样就大大减少数据库压力,而不会出现系统崩盘。

这也是为什么说分布式中一定要有redis的存在。它的工作优势来源于它的自身特性。它采用非阻塞I/O多路复用机制,属于纯内存操作和单线程操作,这样就避免了频繁的上下文切换,进而达到快的要求。

当然,你必须要弄懂redis的持久化意义是什么?redis有时会保存一些较为重要的数据,如果没有持久化,redis遇到灾难性故障的时候,就会丢失所有的数据,因为redis的数据是加载在内存中的。我们知道,内存的数据在断电或者重启之后,一般是没有了。所以redis的持久化意义在于故障恢复,它提供持久化,就是为解决出故障能尽快恢复。

学好redis,从此不怕高并发分布式,走遍天下不再难。