redis学习三连奏,绝对让你彻底吃透分布式架构精髓
2020年初,远程办公与直播授课成为国民刚需,腾讯因此免费开放可支持300人同时在线会议的“腾讯会议”。一时之间,这款软件的用户呈爆发性增长,据统计,腾讯会议一天就有近较100倍日常的会议数量。

谈及此处,我们不得不佩服腾讯会议日常承接这么一个高并发容量之后,用户使用感依然是高清晰流畅无卡顿。我们都知道,在高并发分布式的系统中,缓存是必不可少一部分,没有缓存对系统的加速和阻挡大量的请求直接落到系统的底层,系统是很难撑住高并发的冲击,所以分布式系统中缓存的设计是很重要的一环。
常用的分布式缓存包括Redis、Memcached和Tair,因为Redis提供的数据结构比较丰富且简单易用,所以Redis的使用广泛。而腾讯会议中也是应用了Redis技术,所以才可以满足用户需求的同时,带来稳定与扩展。

为什么分布式中一定有Redis的存在?它本身又有哪些特性?为什么说它是必不可少的一环?
就像《工作后的程序员,该如何有效提升?》中提到一样,“如果你觉得以上问题,你已经完全掌握,接下来思索更高大上一点的技术,如微服务、分布式、读写分离、主从备份、高并发分布式、集群、负载均衡等等。”
高并发分布式技术是每一个通往高级程序员的必备学习技术,而在项目中使用Redis,无非是从两个角度去考虑:性能与并发。当然,。它还可以做分布式锁等其它一些功能。
性能方面,我们在碰到需要执行耗时特别久,且结果不频繁变动的SQL,就特别适合将运行结果放入缓存。这样,后面的请求就去缓存中读取,使得请求能够迅速响应,而且可以随时取消或中止。所以给予用户绝佳体验。这也是Redis受欢迎所在。
当某个时刻所有用户同时发出请求,直接访问数据库时,在如此高并发情况下,数据库会因为负载过量会出现连接异常。这时就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问数据库,这样就大大减少数据库压力,而不会出现系统崩盘。
这也是为什么说分布式中一定要有redis的存在。它的工作优势来源于它的自身特性。它采用非阻塞I/O多路复用机制,属于纯内存操作和单线程操作,这样就避免了频繁的上下文切换,进而达到快的要求。
当然,你必须要弄懂redis的持久化意义是什么?redis有时会保存一些较为重要的数据,如果没有持久化,redis遇到灾难性故障的时候,就会丢失所有的数据,因为redis的数据是加载在内存中的。我们知道,内存的数据在断电或者重启之后,一般是没有了。所以redis的持久化意义在于故障恢复,它提供持久化,就是为解决出故障能尽快恢复。
学好redis,从此不怕高并发分布式,走遍天下不再难。
redis学习三连奏,绝对让你彻底吃透分布式架构精髓的更多相关文章
- 分布式缓存技术redis学习系列
分布式缓存技术redis学习系列(一)--redis简介以及linux上的安装以及操作redis问题整理 分布式缓存技术redis学习系列(二)--详细讲解redis数据结构(内存模型)以及常用命令 ...
- Redis学习---基础学习[all]
什么是NoSQL型数据库 NoSQL数据库---NoSQL数据库的分类 Redis学习---NoSQL和SQL的区别及使用场景 Redis学习---负载均衡的原理.分类.实现架构,以及使用场景 什么是 ...
- Redis学习手册(目录)
为什么自己当初要选择Redis作为数据存储解决方案中的一员呢?现在能想到的原因主要有三.其一,Redis不仅性能高效,而且完全免费.其二,是基于C/C++开发的服务器,这里应该有一定的感情因素吧.最后 ...
- redis 学习笔记(6)-cluster集群搭建
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...
- Redis——学习之路四(初识主从配置)
首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...
- Redis——学习之路三(初识redis config配置)
我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息. ...
- Redis——学习之路二(初识redis服务器命令)
上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息 s ...
- Redis学习笔记~目录
回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...
- Redis学习笔记4-Redis配置详解
在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...
随机推荐
- Linux 常用工具openssh之scp
前言 scp命令用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当你服务器硬盘变为只读read ...
- Docker扩展内容之容器环境变量
介绍 docker容器设置环境变量除了可以在容器层面的变量文件中加载也可以在容器运行之初进行预加载环境变量,下面介绍在Dockerfile中编写环境变量的方式 ENV TZ=Asia/Shanghai ...
- 保存网页内容到excel
from selenium import webdriverfrom time import sleepfrom selenium.common.exceptions import NoSuchEle ...
- springboot-mybatis配置问题
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题
- SpringBoot学习遇到的问题(1) - 配置文件有日志的debug模式等配置项,为什么不起作用
这个问题困扰我近乎两天,通过查找N多资料后终于解决,写下来共享给大家. logging.level.root=DEBUG ... 一系列的日志配置项,都不起作用的原因是springboot启动加载不到 ...
- LinearLayout中组件右对齐
在LinearLayout中,如果将其定位方向设为横向排列:android:orientation="horizontal",那么这个布局中的控件将自左向右排列. 但有时会有这样的 ...
- 关于RiscV的一些资料整理
1. 基于RISC-V架构的开源处理器及SoC研究综述 https://mp.weixin.qq.com/s/qSD-q8y0_MY8R0MBA85ZZg 原文链接: https://blog.csd ...
- Java入门基础(类)
类 在Java中表示自定义的数据类型,一个class可以是若干基本类型的组合. public class Student { public String id;//学号 public String n ...
- 详解python的装饰器decorator
装饰器本质上是一个python函数,它可以让其它函数在不需要任何代码改动的情况下增加额外的功能. 装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志,性能测试,事务处理,缓存, ...
- 将STM32F407片外SRAM作运行内存
本例演示用的软硬件: 片内外设驱动库:STM32CubeF41.24.1的HAL库1.7.6,2019年4月12日 IDE:MDK-ARM 5.28.0.0,2019年5月 开发板:片外SRAM挂在F ...