1.可能的问题
一般来说,要将redis运用于工程项目中,只是用一台redis是万万不能的,原因如下:
1、从结构上,单个redis服务器会发生单点故障,并且一台服务器需要处理所有的请求负载,压力较大;
2.从容量上,单个redis服务器内存容量有限,就算一台Redis服务器内容容量为256G,也不能将所有内存用做Redis存储内存,一般来说,单台Redis最大使用内存不应该超过20G.
2.基本概述
2.1 高可用
“高可用性”通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。(一直都能用)
2.1 高并发
高并发是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求
高并发相关常用的一些指标有响应时间(response time),吞吐量(Throughput),每秒查询率QPS,并发用户数等。
响应时间: 系统对请求作出响应的时间,例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。
吞吐量: 单位时间内处理的请求数量。
QPS: 每秒响应请求数。在互联网领域,这个指标和吞吐量区分的没有这么明显。
并发用户数: 同时承载正常使用系统功能的用户数量,例如一个即时通讯系统,同时在线量一定程度上代表了系统的并发用户数。
2.2.1 提升系统高的并发能力
提高系统并发能力的方式,方法论上主要有两种:垂直扩展和水平扩展
1.垂直扩展:提升单机处理能力。垂直扩展的方式又有两种:
(1)增强单机硬件性能,例如:增加CPU核数如32核,升级更好的网卡如万兆,升级更好的硬盘如SSD,扩充硬盘容量如2T,扩充系统内存如128G:
(2)提升单机架构性能,例如:使用Cache减少IO次数,使用异步来增加单服务吞吐量,使用无锁数据结构来减少响应时间。
在互联网业务发展非常迅猛的早期,如果预算不是问题,强烈建议使用“增强单机硬件性能”的方式提升系统并发能力,因为这个阶段,公司的战略往往是发展业务抢时间,而“增强单机硬件性能”往往是最快的方法。