1、可能的问题

要将redis运用到工程项目中,只使用一台redis是万万不能的,原因如下:

(1)从结构上,单个redis服务器会发生单点故障,并且一台服务器需要处理所有的请求负载,压力较大。

(2)从容量上,单个redis服务器内存容量有限,就算一台redis服务器内存容量为256g,也不能将所有内容都用作redis存储内存,一般情况下,单台redis最大使用内存不应该超过20g

2、基本概念

2.1. 高可用

“高可用”(High Availability)用来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高可用性。

高可用就是系统一直都能用,即使一台redis挂了,系统还是能用别的redis使用。

2.2. 高并发

高并发是指通过设计保证系统能够同时并行处理很多请求。

高并发指标有 响应时间、吞吐量、每秒查询率QPS(Query Per Second),并发用户等。

 响应时间:系统对请求作出响应的时间,例如系统处理一个http请求需要200ms,这个200ms就是系统响应时间。

吞吐量:单位时间内处理的请求数量。

QPS:每秒响应请求数。在互联网领域,这个指标和吞吐量区分的不明显

并发用户数:同时承载正常使用系统功能的用户数量。例如一个即时通讯系统,同时在线数量一定程序上代表了系统的并发用户数。

3、提升系统的并发能力

提升系统并发能力的方式,方法论中有两种:垂直扩展(Scale Up)和水平扩展(Scale Out)

3.1. 垂直扩展

 垂直扩展:提升单机处理能力,说白就是提升单兵作战能力。

(1)增加单机硬件性能。例如增加CPU核数,升级更好的网卡如万兆,升级更好的硬盘如SSD,扩充硬盘容量如2T,扩充系统内存如128G(都是用钱来解决的问题,没啥技术含量)

(2)提升单机架构性能。例如使用Cache来减少IO次数,使用异步来增加单服务吞吐量,使用无锁数据结构来减少响应时间。

如果预算不是问题,建议使用“增强单机硬件性能”的方式提升系统并发能力。因为这个阶段,公司的战略往往是发展业务抢时间,而这种方式是最快的方法。

总结:不管是提升单机硬件性能,还是提升单机架构性能,都有一个致命的不足:单机性能是有极限的。所有互联网分布式架构设计高并发终极解决方案还是水平扩展。

3.2. 水平扩展

   水平扩展:只要增加服务器数量,就能线性扩展系统性能。水平扩展对系统架构的设计是有要求的,难点在于:如何在架构各层进行可水平扩展的设计。

         说白就是搞人海战术。。。

最新文章

  1. Bootstrap学习笔记博客
  2. REDHAT一总复习1 NTP更改时区,并验证时区设置是否正确
  3. Android6.0动态申请权限
  4. C++编程命名规则(转载)
  5. LR录制https协议报证书错误,导航已阻止
  6. js获取url传递参数
  7. Matlab中的fread函数
  8. int型整数的数值范围
  9. 两个实用的Python的装饰器
  10. linux 加载驱动后有permanent的解决办法
  11. Spring中Ioc容器的注入方式
  12. android中 MediaStore提取缩略图和原始图像
  13. python命令行解析工具argparse模块【2】
  14. Java Web整合开发(78) -- Struts 1
  15. iPhone 屏幕分辨率
  16. C++基础——C面向过程与C++面向对象编程01_圆面积求解
  17. while循环_do_while循环_switch
  18. 多线程-Timer重入
  19. 【Alpha版本】冲刺阶段 - Day4 - 加速
  20. 学以致用十四-----打造一个简单的vim IDE

热门文章

  1. AB PLC简述
  2. 利用python制作在线视频播放器遇到的一些问题
  3. HDU 1548 A strange lift 题解
  4. Graph Embedding总结
  5. 一探istio-proxy(envoy)容器里的秘密
  6. Mybatis-plus中如何排除非表字段的三种方式
  7. CLR Exception 0xE0434F4D和0xE0434352的区别
  8. Stuts 文件上传
  9. 【BZOJ3569】DZY Loves Chinese II
  10. pyinstaller 如何引入Pycharm项目中的第三方库