【转】大数据分析中Redis怎么做到220万ops
原文:http://www.cnblogs.com/nnhy/archive/2018/01/16/Redis220.html
大数据时代,海量数据分析就像吃饭一样,成为了我们每天的工作。为了更好的为公司提供运营决策,各种抖机灵甚至异想天开的想法都会紧跟着接踵而来!业务多变,决定了必须每天修改系统,重新跑数据,这就要求极高的海量数据读取和存储速度!
公司每天增加几亿行的业务日志数据,我们需要从中分析出各种维度的业务画像。经过很长时间的摸索,选择了Redis作为读写数据的缓存。
1,开发平台,C#Net,写Windows服务抓取原始日志数据,合并精简压缩后,写入Redis集群。
2,各业务系统从时间维度上遍历Redis缓存数据,逐行分析处理,中间结果和最终结果写入Redis。
3,另一套Windows服务抓取Redis里的结果数据,保存回数据库。这里有点像MQ的工作方式。
实际上,第一步只有一套系统,这是数据基础。第二第三一般每个子系统都有一对。甚至A系统的结果直接访问B系统放在Redis中的结果数据。
整体上看起来耦合度有点高,但是这一套架构得到了极高的速度,单个子系统实例每秒钟可处理1万到10万个订单!并且是很多套子系统同时工作,单一子系统因业务原因不会吃完全部Redis性能。单独对某一台Redis服务器做压力测试,最高得到了222万ops的速度,测试的是比较简单的业务,统计满足某种业务规则的订单总数。
为何需要这么高速度??
业务规则一旦改变,修改程序后,往往需要重新跑最近一周什么一个月的历史数据。如果每天改几次呢?如果赶上双十一旺季,太慢的速度恐怕连实时数据都赶不上。
Redis怎么做到220万ops
1,Redis是单线程模型,因此32核心服务器安装32个实例
2,数据分片,key散列后均分到几十个实例上
3,关闭持久化,运维和Linux保证可靠性
4,控制好数据包大小,高性能网络通信最忌收发大量小包,控制在1400字节附近最佳,最差也要pipeline
5,其它在网上能轻易找到的细小技巧
为什么不用数据库??
经过大量验证,同样32核心服务器,数据库3巨头一般得到20000qps的查询速度和接近10000tps的写入速度。这是按照单表几百万数据有两个索引的情况测试。如果数据达到几千万上亿,再多两个索引,读写同时进行,那么速度只剩下四分之一不到。真真一个惨字!
大数据分析,有很多是临时数据,需要合并、叠加、去重等等,它们的生命周期不长,一般24小时或48小时,也有不少是两三个小时,关键是数据量还特别大,每天几千万很常见。这类数据,写数据库是很不合适的。
而使用Redis,一台32U512G机器,可以装下一个月几十亿经过压缩处理的历史数据,资源占用在50%上下。
我是大石头,打1999年起,18年老码农。目前在物流行业从事数据分析架构工作。欢迎大家一起C#大数据
【转】大数据分析中Redis怎么做到220万ops的更多相关文章
- 大数据分析中Redis怎么做到220万ops
大数据时代,海量数据分析就像吃饭一样,成为了我们每天的工作.为了更好的为公司提供运营决策,各种抖机灵甚至异想天开的想法都会紧跟着接踵而来!业务多变,决定了必须每天修改系统,重新跑数据,这就要求极高的海 ...
- 大数据分析中Redis应用
大数据分析中Redis 大数据时代,海量数据分析就像吃饭一样,成为了我们每天的工作.为了更好的为公司提供运营决策,各种抖机灵甚至异想天开的想法都会紧跟着接踵而来!业务多变,决定了必须每天修改系统,重新 ...
- 大数据分析中数据治理的重要性,从一个BI项目的失败来分析
很多企业在做BI项目时,一开始的目标都是想通过梳理管理逻辑,帮助企业搭建可视化管理模型与深化管理的精细度,及时发现企业经营管理中的问题. 但在项目实施和验收时,BI却变成了报表开发项目,而报表的需求往 ...
- 用Storm轻松实时大数据分析【翻译】
原文地址 简单易用,Storm让大数据分析变得轻而易举. 如今,公司在日常运作中经常会产生TB(terabytes)级的数据.数据来源包括从网络传感器捕获的,到Web,社交媒体,交易型业务数据,以及其 ...
- 使用Storm实现实时大数据分析
摘要:随着数据体积的越来越大,实时处理成为了许多机构需要面对的首要挑战.Shruthi Kumar和Siddharth Patankar在Dr.Dobb’s上结合了汽车超速监视,为我们演示了使用Sto ...
- Net Core SignalR 测试,可以用于unity、Layair、白鹭引擎、大数据分析平台等高可用消息实时通信器。
SignalR介绍 SignalR介绍来源于微软文档,不过多解释.https://docs.microsoft.com/zh-cn/aspnet/core/signalr/introduction?v ...
- 企业日志大数据分析系统ELK+KAFKA实现【转】
背景: 最近线上上了ELK,但是只用了一台Redis在中间作为消息队列,以减轻前端es集群的压力,Redis的集群解决方案暂时没有接触过,并且Redis作为消息队列并不是它的强项:所以最近将Redis ...
- Impala:新一代开源大数据分析引擎--转载
原文地址:http://www.parallellabs.com/2013/08/25/impala-big-data-analytics/ 文 / 耿益锋 陈冠诚 大数据处理是云计算中非常重要的问题 ...
- 使用Storm实现实时大数据分析(转)
原文链接:http://blog.csdn.net/hguisu/article/details/8454368 简单和明了,Storm让大数据分析变得轻松加愉快. 当今世界,公司的日常运营经常会生成 ...
随机推荐
- Unicode范围预览
链接: https://www.zhangxinxu.com/study/201611/show-character-by-charcode.php?range=4E00-9FBB 备注: Unico ...
- Java桌面程序打包成exe可执行文件
前言: 我们都知道Java可以将二进制程序打包成可执行jar文件,双击这个jar和双击exe效果是一样一样的,但感觉还是不同.其实将java程序打包成exe也需要这个可执行jar文件. 准备: ecl ...
- HTTP 1.1学习笔记
前言 由于HTTP 1自身的局限性,它不能很好的为用户提供性能良好的WEB服务.于1999年6月正式发布了HTTP1.1标准REC2616,它厘清了之前版本中很多有歧义的地方,而且还新增了很多重要的优 ...
- uva12436 回头再做一次
线段树维护等差数列,结点维护首项+公差即可 #include <cstdio> #include <cstring> #include <algorithm> us ...
- CSS 滤镜
声明: web前端学习笔记,欢迎大神指点.联系QQ:1522025433. CSS样式表是一种为超文本标签语言提供增强补充服务的技术,可对每一个html的标签做精雕细刻的修饰.只用html制作的网页, ...
- python 全栈开发,Day96(Django REST framework 视图,django logging配置,django-debug-toolbar使用指南)
昨日内容回顾 1. Serializer(序列化) 1. ORM对应的query_set和ORM对象转换成JSON格式的数据 1. 在序列化类中定义自定义的字段:SerializerMethodFie ...
- 2017-2018-2 20155309 南皓芯 Exp5 MSF基础应用
实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 1.1一个主动攻击实践,如ms08_067; 1.2 一个针对浏览器的攻击,如ms11_05 ...
- 我靠,上班eclipse看糗事百科
package test; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; ...
- 知识点:从迭代器一直撸到yield from
最近在跟一个系列, 难度和篇幅比较合适我这样的懒人. 敲下代码,作下注释,看看输出,就蛮好. https://www.cnblogs.com/wongbingming/p/9095243.html i ...
- asp.net core 支付宝支付( 电脑2.0)
支付宝电脑支付实测在手机浏览器也可以唤醒手机支付宝进行支付,因此也可以作为支付宝手机web支付方式.支付宝电脑支付流程为使用支付宝官方sdk通过获取的支付宝参数构造DefaultAopClient实例 ...