原文: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的更多相关文章

  1. 大数据分析中Redis怎么做到220万ops

    大数据时代,海量数据分析就像吃饭一样,成为了我们每天的工作.为了更好的为公司提供运营决策,各种抖机灵甚至异想天开的想法都会紧跟着接踵而来!业务多变,决定了必须每天修改系统,重新跑数据,这就要求极高的海 ...

  2. 大数据分析中Redis应用

    大数据分析中Redis 大数据时代,海量数据分析就像吃饭一样,成为了我们每天的工作.为了更好的为公司提供运营决策,各种抖机灵甚至异想天开的想法都会紧跟着接踵而来!业务多变,决定了必须每天修改系统,重新 ...

  3. 大数据分析中数据治理的重要性,从一个BI项目的失败来分析

    很多企业在做BI项目时,一开始的目标都是想通过梳理管理逻辑,帮助企业搭建可视化管理模型与深化管理的精细度,及时发现企业经营管理中的问题. 但在项目实施和验收时,BI却变成了报表开发项目,而报表的需求往 ...

  4. 用Storm轻松实时大数据分析【翻译】

    原文地址 简单易用,Storm让大数据分析变得轻而易举. 如今,公司在日常运作中经常会产生TB(terabytes)级的数据.数据来源包括从网络传感器捕获的,到Web,社交媒体,交易型业务数据,以及其 ...

  5. 使用Storm实现实时大数据分析

    摘要:随着数据体积的越来越大,实时处理成为了许多机构需要面对的首要挑战.Shruthi Kumar和Siddharth Patankar在Dr.Dobb’s上结合了汽车超速监视,为我们演示了使用Sto ...

  6. Net Core SignalR 测试,可以用于unity、Layair、白鹭引擎、大数据分析平台等高可用消息实时通信器。

    SignalR介绍 SignalR介绍来源于微软文档,不过多解释.https://docs.microsoft.com/zh-cn/aspnet/core/signalr/introduction?v ...

  7. 企业日志大数据分析系统ELK+KAFKA实现【转】

    背景: 最近线上上了ELK,但是只用了一台Redis在中间作为消息队列,以减轻前端es集群的压力,Redis的集群解决方案暂时没有接触过,并且Redis作为消息队列并不是它的强项:所以最近将Redis ...

  8. Impala:新一代开源大数据分析引擎--转载

    原文地址:http://www.parallellabs.com/2013/08/25/impala-big-data-analytics/ 文 / 耿益锋 陈冠诚 大数据处理是云计算中非常重要的问题 ...

  9. 使用Storm实现实时大数据分析(转)

    原文链接:http://blog.csdn.net/hguisu/article/details/8454368 简单和明了,Storm让大数据分析变得轻松加愉快. 当今世界,公司的日常运营经常会生成 ...

随机推荐

  1. Unicode范围预览

    链接: https://www.zhangxinxu.com/study/201611/show-character-by-charcode.php?range=4E00-9FBB 备注: Unico ...

  2. Java桌面程序打包成exe可执行文件

    前言: 我们都知道Java可以将二进制程序打包成可执行jar文件,双击这个jar和双击exe效果是一样一样的,但感觉还是不同.其实将java程序打包成exe也需要这个可执行jar文件. 准备: ecl ...

  3. HTTP 1.1学习笔记

    前言 由于HTTP 1自身的局限性,它不能很好的为用户提供性能良好的WEB服务.于1999年6月正式发布了HTTP1.1标准REC2616,它厘清了之前版本中很多有歧义的地方,而且还新增了很多重要的优 ...

  4. uva12436 回头再做一次

    线段树维护等差数列,结点维护首项+公差即可 #include <cstdio> #include <cstring> #include <algorithm> us ...

  5. CSS 滤镜

    声明: web前端学习笔记,欢迎大神指点.联系QQ:1522025433. CSS样式表是一种为超文本标签语言提供增强补充服务的技术,可对每一个html的标签做精雕细刻的修饰.只用html制作的网页, ...

  6. python 全栈开发,Day96(Django REST framework 视图,django logging配置,django-debug-toolbar使用指南)

    昨日内容回顾 1. Serializer(序列化) 1. ORM对应的query_set和ORM对象转换成JSON格式的数据 1. 在序列化类中定义自定义的字段:SerializerMethodFie ...

  7. 2017-2018-2 20155309 南皓芯 Exp5 MSF基础应用

    实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 1.1一个主动攻击实践,如ms08_067; 1.2 一个针对浏览器的攻击,如ms11_05 ...

  8. 我靠,上班eclipse看糗事百科

    package test; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; ...

  9. 知识点:从迭代器一直撸到yield from

    最近在跟一个系列, 难度和篇幅比较合适我这样的懒人. 敲下代码,作下注释,看看输出,就蛮好. https://www.cnblogs.com/wongbingming/p/9095243.html i ...

  10. asp.net core 支付宝支付( 电脑2.0)

    支付宝电脑支付实测在手机浏览器也可以唤醒手机支付宝进行支付,因此也可以作为支付宝手机web支付方式.支付宝电脑支付流程为使用支付宝官方sdk通过获取的支付宝参数构造DefaultAopClient实例 ...