当前位置: 首页 > news >正文

网站建设是什么专业里的科目微信营销成功案例8个

网站建设是什么专业里的科目,微信营销成功案例8个,做网站怎样写标题,龙游建设局网站节约内存:Instagram的Redis实践 作者:nosqlfan on 星期三, 十一月 2, 2011 9条评论 【阅读:11,851 次】 Instagram可以说是网拍App的始祖级应用,也是当前最火热的拍照App之一,Instagram的照片数量已经达到3亿&#x…

节约内存:Instagram的Redis实践

Instagram可以说是网拍App的始祖级应用,也是当前最火热的拍照App之一,Instagram的照片数量已经达到3亿,而在Instagram里,我们需要知道每一张照片的作者是谁,下面就是Instagram团队如何使用Redis来解决这个问题并进行内存优化的。

首先,这个通过图片ID反查用户UID的应用有以下几点需求:

  • 查询速度要足够快
  • 数据要能全部放到内存里,最好是一台EC2的 high-memory 机型就能存储(17GB或者34GB的,68GB的太浪费了)
  • 要合适Instagram现有的架构(Instagram对Redis有一定的使用经验,比如这个应用)
  • 支持持久化,这样在服务器重启后不需要再预热

Instagram的开发者首先否定了数据库存储的方案,他们保持了KISS原则(Keep It Simple and Stupid),因为这个应用根本用不到数据库的update功能,事务功能和关联查询等等牛X功能,所以不必为这些用不到的功能去选择维护一个数据库。

于是他们选择了Redis,Redis是一个支持持久化的内存数据库,所有的数据都被存储在内存中(忘掉VM吧),而最简单的实现就是使用Redis的String结构来做一个key-value存储就行了。像这样:

SET media:1155315 939
GET media:1155315
> 939

其中1155315是图片ID,939是用户ID,我们将每一张图片ID为作key,用户uid作为value来存成key-value对。然后他们进行了测试,将数据按上面的方法存储,1,000,000数据会用掉70MB内存,300,000,000张照片就会用掉21GB的内存。对比预算的17GB还是超支了。

(NoSQLFan:其实这里我们可以看到一个优化点,我们可以将key值前面相同的media去掉,只存数字,这样key的长度就减少了,减少key值对内存的开销【注:Redis的key值不会做字符串到数字的转换,所以这里节省的,仅仅是media:这6个字节的开销】。经过实验,内存占用会降到50MB,总的内存占用是15GB,是满足需求的,但是Instagram后面的改进任然有必要)

于是Instagram的开发者向Redis的开发者之一Pieter Noordhuis询问优化方案,得到的回复是使用Hash结构。具体的做法就是将数据分段,每一段使用一个Hash结构存储,由于Hash结构会在单个Hash元素在不足一定数量时进行压缩存储,所以可以大量节约内存。这一点在上面的String结构里是不存在的。而这个一定数量是由配置文件中的hash-zipmap-max-entries参数来控制的。经过开发者们的实验,将hash-zipmap-max-entries设置为1000时,性能比较好,超过1000后HSET命令就会导致CPU消耗变得非常大。

于是他们改变了方案,将数据存成如下结构:

HSET "mediabucket:1155" "1155315" "939"
HGET "mediabucket:1155" "1155315"
> "939"

通过取7位的图片ID的前四位为Hash结构的key值,保证了每个Hash内部只包含3位的key,也就是1000个。

再做一次实验,结果是每1,000,000个key只消耗了16MB的内存。总内存使用也降到了5GB,满足了应用需求。

(NoSQLFan:同样的,这里我们还是可以再进行优化,首先是将Hash结构的key值变成纯数字,这样key长度减少了12个字节,其次是将Hash结构中的subkey值变成三位数,这又减少了4个字节的开销,如下所示。经过实验,内存占用量会降到10MB,总内存占用为3GB)

HSET "1155" "315" "939"
HGET "1155" "315"
> "939"

优化无止境,只要肯琢磨。希望你在使用存储产品时也能如此爱惜内存。

转载于:https://www.cnblogs.com/aiguang/p/3532799.html

http://www.lbrq.cn/news/2673865.html

相关文章:

  • 网站做好了如何发布大数据营销平台那么多
  • wordpress地址和站点地址有什么用什么是市场营销
  • 邢台网站建设有哪些网站查询进入
  • 淘金企业网站建设服务安装百度到手机桌面
  • 武汉品牌网站设计互联网营销策划方案
  • WordPress能放小程序吗西安seo排名
  • 做网站最适合用多大的图片百度域名收录提交入口
  • 重庆网站建设零臻靠谱百度快速seo软件
  • 免费网站建站模板网上推广赚钱项目
  • 长沙网站设计哪家专业chatgpt网页
  • 四川成都疫情最新消息今天又封了扬州seo
  • 天河区门户网站官网郑州网络营销
  • 网站建设方式与信息化什么是营销型网站?
  • 网站备案幕布怎么做珠海网站建设优化
  • 如何在手机上做微电影网站aso优化服务
  • 企业网站建设时优化关键词的问题中国十大seo公司
  • 什么软件能把做的网站上传什么软件可以弄排名
  • wordpress扫码支付后才能看到图片seo刷网站
  • 天津河东网站建设公司郑州网站优化渠道
  • 昆明做网站哪家好推广咨询服务公司
  • 网站做cpa网站竞价推广托管公司
  • 怎么查一个网站是什么程序做的品牌推广策略有哪几种
  • 从网络安全角度考量_写出建设一个大型电影网站规划方案百度快照下载
  • 建筑工人信息平台沈阳高端关键词优化
  • 黑彩网站建设需要什么东西网站免费建站app
  • ps做网站需注意什么东莞发布最新通告
  • 网站所有权变更独立站建站平台有哪些
  • 网站域名备案需要资料网站制作的流程是什么
  • 呼和浩特网站建设哪家最便宜?灰色关键词排名代发
  • 电子商务网站建设实训报告主要内容seo优化快速排名
  • 第十六届蓝桥杯大赛青少组 C++ 省赛真题解析(2025年8月10日)
  • 数据备份与进程管理
  • 李宏毅2025《机器学习》-第十讲:AI“思想钢印”:深入解析大模型的知识编辑技术
  • Pytorch进阶-timm库-00快速开始
  • 堆(Java实现)
  • 计算机视觉(CV)——图像相关基本概念