架构实战:(一)Redis采用主从架构的原因

架构实战

(一)Redis采用主从架构的原因

(二)


 

如果系统的QPS超过10W+,甚至是百万以上的访问,则光是Redis是不够的,但是Redis是整个大型缓存架构中,支撑高并发的架构非常重要的环节。

首先,你的缓存中间件、缓存系统,必须能够支撑起10w+的高并发; 其次,再经过良好的整理缓存架构设计(多级缓存架构、热点缓存等),支撑真正上十万、甚至上百万的高并发。

然而单机的Redis是支撑不了的,单机的Redis能够承载的QPS大概就在上万到几万的并发,除非你的服务器配置特别高,性能特别好的物理机,才有可能支持10w的请求,如果大量的访问过来,单机Redis被流量打死,则系统的瓶颈就卡到Redis上了。所以,我们要采用主从架构的Redis来支撑高并发系统。

一般高并发的应用,写的请求是比较少的,大量的请求都是读。所以我们要采用  主从架构 + 读写分离,来支撑10W+ 的读QPS的系统。

(1)主从架构

(2)读写分离

(3)可支持水平扩展的读高并发架构

 redis replication的核心机制

(1)redis采用异步的方式复制数据到slave节点上,从2.8版本开始,salve node会周期性的确认自己每次复制的数据量

(2)一个master node可以配置多个slave node节点

(3)slave node也可以连接其他的slave node节点

(4)slave node做复制的时候,也不会阻止master node的正常工作

(5)slave node在做复制的时候,不会阻止对自己的查询操作,它会用旧的数据集来提供服务;但是复制完成的时候,需要删除旧的数据集,加载新数据集,这时候就会暂停对外的服务了

(6)slave node主要用来做横向扩容,做读写分离,扩容的slave node可以提供读的吞吐量

 

 

转载请注明出处:http://www.cnblogs.com/chenansys/articles/7467043.html 

转载于:https://www.cnblogs.com/chenansys/articles/7467043.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428797.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5. 多重背包问题 II

多重背包问题 II 二进制优化&#xff1a; #include<iostream> #include<vector> #include<algorithm> #include<cstring> using namespace std; int f[10001]; struct node {int v;int w; }; int main() {vector<node>cun;int n,V;cin>>n…

使用memcache作为中间缓存区的步骤

① 直接让PHP程序memcache取数据 ② 如果memcache里面没有数据&#xff0c;则让其连接数据库&#xff0c;去数据库里面取数据 ③ 将取出的数据展示给用户的同时&#xff0c;再将数据缓存到memcache里面&#xff0c;并且可以指定一个缓存的时间&#xff0c;单位为秒。 ④ 如果之…

844. 走迷宫

走迷宫 友情提示&#xff1a;尽量不用fill&#xff0c;用memset 一个fill浪费我两个小时找错。。。。。 #include <iostream> #include <queue> #include <algorithm> #include <cstring> using namespace std; int ch[111][111]; int op[111][111];…

计算机 - 网络原理

计算机 - 网络原理转载于:https://www.cnblogs.com/KevinXia/p/7477693.html

3578. 最大中位数

最大中位数 给定一个由 n 个整数组成的数组 a&#xff0c;其中 n 为奇数。 你可以对其进行以下操作&#xff1a; 选择数组中的一个元素&#xff08;例如 ai&#xff09;&#xff0c;将其增加 1&#xff08;即&#xff0c;将其替换为 ai1&#xff09;。 你最多可以进行 k 次操…

selenium无法定位到QQ邮箱登录页面的输入框元素和登录按钮元素-解决方法

问题如下&#xff1a; 代码如下&#xff1a; package TestNG1; import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.support.FindBy;import org.openqa.selenium.support.PageFactory;import org.testng.annotations.Tes…

3583. 整数分组

整数分组 #include<iostream> #include<algorithm> using namespace std; int main() {int f[5010][5010];int w[5010];int n,m;cin>>n>>m;for (int i1;i<n;i) cin>>w[i];sort(w1,wn1);for (int i1,j1;i<n;i){while (w[i]-w[j]>5) j;f…

《JavaWeb从入门到改行》注册时向指定邮箱发送邮件激活

javaMail API javaMail是SUN公司提供的针对邮件的API 。 两个jar包 mail.jar 和 activation.jar java mail中主要类&#xff1a;javax.mail.Session、javax.mail.internet.MimeMessage、javax.mail.Transport。 Session 表示会话&#xff0c;即客户端与邮件服务器之…

9. 分组背包问题

分组背包问题 #include <iostream> #include <algorithm> using namespace std; const int maxn 1000; int w[maxn], v[maxn], f[maxn]; int main() {int n, V;cin >> n >> V;for (int i 0; i < n; i){int m;cin >> m;for (int j 0; j &l…

HTTP之报文

HTTP 报文 用于 HTTP 协议交互的信息被称为 HTTP 报文。请求端&#xff08;客户端&#xff09;的 HTTP 报文叫做请求报文&#xff0c;响应端&#xff08;服务器端&#xff09;的叫做响应报文。HTTP 报文本身是由多行&#xff08;用 CRLF 作换行符&#xff09;数据构成的字符串文…

小程序添加本地图片

写背景图片的时候用了本地的图片&#xff0c;报错说是不能直接使用本地图片。 只能使用<image></image> 或者网络图片以及base64 只好换背景图为<image src本地图片路径></image>转载于:https://www.cnblogs.com/zhangweihu/p/7490233.html

896. 最长上升子序列 II

最长上升子序列 II #include<iostream> using namespace std; int main() {int n;int w[100001],v[100001];cin>>n;for (int i0;i<n;i) cin>>w[i];int len 0;v[0] -2e9;for (int i0;i<n;i){int l 0,r len;while (l<r){int mid lr1>>1;i…

python 内置函数

一 print( ) flush的应用——模拟进度条 import time for i in range(1,101):time.sleep(0.1)print(\r{}%:{}.format(i,**i),end,flushTrue) #\r &#xff08;return&#xff09; 表示回车 \n &#xff08;new line&#xff09;表示换行&#xff0c;实际上是回车换…

275. 传纸条

传纸条 DP 三维数组。 #include <iostream> #include <cstring> using namespace std; const int maxn 100; int f[maxn][maxn][maxn];//第一维是步数&#xff0c;第二维是x1&#xff0c;第三维是x2。 int w[maxn][maxn];//y可以用x表示 int main() {int n, m;ci…

java使用token防止用户重复登录以及验证用户登录

登录成功后&#xff0c;使用用户id构造生成一个token并保存到redis中&#xff0c;同时也保存用户id到session中 生成token的代码如下&#xff1a; Overridepublic String createToken(String phone,String appId) throws Exception {long loginTime DateUtil.getNowTimeStampT…

866. 试除法判定质数

试除法判定质数 #include<iostream> #include<cmath> using namespace std; bool cmp(int x) {if (x1) return false;for (int i2;i<sqrt(x);i){if (x%i0) return false;}return true; } int main() {int n,num;cin>>n;while (n--){cin>>num;bool …

python基础练习

1.简单输入输出交互。 oldinput(How old are you?\n) print(I am %s%old) 2.用户输入两个数字&#xff0c;计算并输出两个数字之和&#xff0c;尝试只用一行代码实现这个功能。 minput(输入第一个数字&#xff1a;) ninput(输入第二个数字&#xff1a;)sumfloat(m)float(n)pr…

867. 分解质因数

分解质因数 #include <iostream> #include <set> #include <map> #include <cmath> using namespace std; int main() {int n;cin >> n;for (int i 0; i < n; i){int num;map<int, int> mp;set<int> cun;cin >> num;for …

.Net AppDomain详解(一)

AppDomain是CLR的运行单元&#xff0c;它可以加载Assembly、创建对象以及执行程序。AppDomain是CLR实现代码隔离的基本机制。每一个AppDomain可以单独运行、停止&#xff1b;每个AppDomain有自己默认的异常处理&#xff1b;一个AppDomain的运行失败不会影响到其他的AppDomain。…

902. 最短编辑距离

最短编辑距离 #include <iostream> #include <algorithm> using namespace std; const int N 1001; int f[N][N]; int n, m; char w1[N], w2[N]; int main() {cin >> n >> w1 1;cin >> m >> w2 1;for (int i 0; i < m; i)f[0][i] …