【转】大数据分析中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#大数据

原文地址:https://www.cnblogs.com/gossip/p/8330077.html

时间: 2024-11-05 19:31:27

【转】大数据分析中Redis怎么做到220万ops的相关文章

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

大数据时代,海量数据分析就像吃饭一样,成为了我们每天的工作.为了更好的为公司提供运营决策,各种抖机灵甚至异想天开的想法都会紧跟着接踵而来!业务多变,决定了必须每天修改系统,重新跑数据,这就要求极高的海量数据读取和存储速度! 公司每天增加几亿行的业务日志数据,我们需要从中分析出各种维度的业务画像.经过很长时间的摸索,选择了Redis作为读写数据的缓存. 1,开发平台,C#Net,写Windows服务抓取原始日志数据,合并精简压缩后,写入Redis集群. 2,各业务系统从时间维度上遍历Redis缓存

大数据分析中使用关系型数据库的关键点

相当一部分大数据分析处理的原始数据来自关系型数据库,处理结果也存放在关系型数据库中.原因在于超过99%的软件系统采用传统的关系型数据库,大家对它们很熟悉,用起来得心应手. 在我们正式的大数据团队,数仓(数据仓库Hive+HBase)的数据收集同样来自Oracle或MySql,处理后的统计结果和明细,尽管保存在Hive中,但也会定时推送到Oracle/MySql,供前台系统读取展示,生成各种报表. 在这种场景下,数据库的读写性能就显得尤为重要! 一.数据库定位 有大神说,给我足够强的数据库硬件,一

《大数据分析中的计算智能研究现状与发展》—— 读后感

<大数据分析中的计算智能研究现状与发展>这篇文章是郭平.王可.罗阿理.薛明志发于2015年11月发表于软件学报. 该篇文章讨论了大数据分析中计算智能研究存在的问题和进一步的研究方向,阐述了数据源共享问题,并建议利用以天文学为代表的数据密集型基础科研领域的数据开展大数据分析研究.  大数据和人工智能是现代计算机技术应用的重要分支,近年来这两个领域的研究相互交叉促进,产生了很多新的方法.应用和价值.大数据和人工智能具有天然的联系,大数据的发展本身使用了许多人工智能的理论和方法,人工智能也因大数据技

大数据分析中的挖掘技术(二)

我们在上一篇文章中给大家介绍了大数据分析技术.数据挖掘的意义.数据挖掘的技术以及方法还有机器学习的内容.一般来说,大数据分析中的挖掘技术都是比较重要的,在这篇文章中我们给大家介绍一下数据挖掘的主要过程以及数据挖掘的重点内容. 我们不只在一篇文章中提到过,数据挖掘的内容是非常重要的,数据挖掘主要过程就是根据分析挖掘目标,从数据库中把数据提取出来,然后经过ETL组织成适合分析挖掘算法使用宽表,然后利用数据挖掘软件进行挖掘.传统的数据挖掘软件,一般只能支持在单机上进行小规模数据处理,受此限制传统数据分

就像在火星上种土豆?看看人家怎么在大数据分析中使用Docker

三十年后,当马特·达蒙回忆起自己波澜壮阔的一生,最令他回味的,也许不是参加了诺曼底滩头的迷茫战斗<拯救大兵瑞恩>,不是在失忆的惊惶中流亡天涯<谍影重重>,也不是冰天雪地里30多年的春秋大梦<星际穿越>,而是红色星球上种土豆的日子<火星救援>. 据说,空间站宇航员已经食用过了太空生长的莴苣.NASA一位植物学家也称,人类可以在火星上栽种土豆,而且可种植的不止土豆一种.2014年,荷兰就有一群好奇的科学家,已经在模拟月球土和模拟火星土上,种植了西红柿.胡萝卜.小

大数据分析,利用向外扩展技术深入挖掘商业价值

导语:大数据分析技术的价值在企业领域已经非常明确.充分利用良好信息的能力一直是摆在IT部门面前的重要难题与挑战.现在我们已经拥有了足以解决这一难题的工具,接下来要做的就是想办法使其为自己服务了. 方方面面的发展改进已经让从半结构化数据中获取有价值信息成为可能.以Hadoop为代表的新型解决方案在构建层面就充分考虑到了要如何适应跨商用服务器集群的分布式运行环境. 大数据:以需求为导向的审视角度 新型分析工具与极大丰富的处理能力为我们敞开了一道大门,如今企业已经能够借此对庞大的业务及外部数据加以审视

当大数据分析与云技术双剑合璧

大数据的出现使业务智能真正地走入了21世纪.但事实上“大数据”词代表的并不是解决方案,而是一类问题.在这些PB数量级的数据中,隐藏着怎样的价值?我们从中能得什么,并且使之指导业务部署的方方面面.但这一巨大量数据实际上有用的没有多少.所以为了利用其隐藏的价值,企业需要收集.过滤,并通过情感分析应用.定位工具以及其它的技术来分析它,从中产生有用的信息,从而为今后的业务发展服务. 云可作为大数据分析的使能器 Forrester定义大数据为“在大规模的经济性下,获取数据的技术和技能.”这里最关键的一个词

漫谈redis在运维数据分析中的去重统计方式

今天,我和大家分享下redis在运维数据分析中的去重统计方式.为了避免混淆,本文中对于redis的数据结构做如下约定: SET:saddkey member ZSET:zaddkeyscoremember HYPERLOGLOG:pfaddkeyelement STRING:setbitkeyoffset value 名词约定: 维度:比如版本.操作系统类型.操作系统版本.运营商.设备型号.网络类型等 复合维度:由两个或多个维度交错产生的维度,比如某个版本下的某个设备型号. 去重统计在数据化运维

中国有嘻哈和极限挑战之大数据分析

根据中国有嘻哈和极限挑战的大数据分析,分析得出,在星期日对于极限挑战网友的网络点击率是最高的,正式因为星期日是极限挑战一周一次的播出时间,进而星期日极限挑战的网络点击率比中国有嘻哈多,而前一日,星期六,则是中国有嘻哈比极限挑战的网友点击率高,再一次证实了,在现代社会,大数据的优势和发展前景.