为什么使用 Redis及其产品定位 (转载自http://www.infoq.com/cn/articles/tq-w

传统MySQL+Memcached架构遇到的问题 实际MySQL 是适合进行海量存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: 1. MySQL需要不断的进行拆库

传统mysql+memcached架构遇到的问题

实际MySQL 是适合进行海量存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题:

1. MySQL需要不断的进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间。

2. Memcached与MySQL数据库数据一致性问题。

3. Memcached数据命中率低或down机,大量访问直接穿透到DB,MySQL无法支撑。

4. 跨机房cache同步问题。

 

众多NoSQL百花齐放,如何选择

最近几年,业界不断涌现出很多各种各样的NoSQ产品,那么如何才能正确地使用好这些作品,最大化地发挥其长处,是我们需要深入研究和思考的问题,实际归根结底最重要的是了解这些产品的定位,并且了解到每款产品的tradeoffs,在实际应用中做到扬长避短,总体上这些NoSQL主要用于解决以下几种问题

1. 少量数据存储,高速读写访问。此类产品通过数据全部in-momery的方式保证高速访问,同时提供数据落地的功能,实际这正是Radis最主要的适用场景。

2. 海量数据存储,分布式系统支持,数据一致性保证,方便的集群节点添加/删除。

3. 这方面最具代表性的是dynamo和bigtables 2篇论文所阐述的思路。前者是一个完全无中心的设计,节点之间通过gossip方式传递集群信息,数据保证最终一致性,后者是一个中心化的方案设计,通过类似一个分布式锁服务来保证强一致性,数据写入先写内存和redo log,然后定期compat归并到磁盘上,将随机写优化为顺序写,提高写入性能。

4. Schema free,auto-sharding等。比如目前常见的一些文档数据库都是支持schema-free的,直接存储json格式数据,并且支持auto-sharding等功能,,比如mongodb。

面对这些不同类型的NoSQL产品,我们需要根据我们的业务场景选择最合适的产品。

Redis适用场景,如何正确的使用

前面已经分析过,Redis最适合所有数据in-momory的场景,虽然Redis也提供持久化功能,但实际更多的是一个disk-backed的功能,跟传统意义上的持久化有比较大的差别,那么可能大家就会有疑问,似乎Redis更像一个加强版的Memcached,那么何时使用Memcached,何时使用Redis呢?

1.网络IO模型

Memcached是多线程,非阻塞IO复用的网络模型,分为监听主线程和worker子线程,监听线程监听网络连接,接受请求后,将连接描述字pipe 传递给worker线程,进行读写IO, 网络层使用libevent封装的事件库,多线程模型可以发挥多核作用,但是引入了cache coherency和锁的问题,比如,Memcached最常用的stats 命令,实际Memcached所有操作都要对这个全局变量加锁,进行计数等工作,带来了性能损耗。

为什么使用 Redis及其产品定位 (转载自http://www.infoq.com/cn/articles/tq-w

 

(Memcached网络IO模型)

稿定AI绘图 稿定AI绘图

稿定推出的AI绘画工具

稿定AI绘图 36 查看详情 稿定AI绘图

Redis使用单线程的IO复用模型,自己封装了一个简单的AeEvent事件处理框架,主要实现了epoll、kqueue和select,对于单纯只有IO操作来说,单线程可以将速度优势发挥到最大,但是Redis也提供了一些简单的计算功能,比如排序、聚合等,对于这些操作,单线程模型实际会严重影响整体吞吐量,CPU计算过程中,整个IO调度都是被阻塞住的。

2.内存管理方面

Memcached使用预分配的内存池的方式,使用slab和大小不同的chunk来管理内存,Item根据大小选择合适的chunk存储,内存池的方式可以省去申请/释放内存的开销,并且能减小内存碎片产生,但这种方式也会带来一定程度上的空间浪费,并且在内存仍然有很大空间时,新的数据也可能会被剔除,原因可以参考Timyang的文章:

Redis使用现场申请内存的方式来存储数据,并且很少使用free-list等方式来优化内存分配,会在一定程度上存在内存碎片,Redis跟据存储命令参数,会把带过期时间的数据单独存放在一起,并把它们称为临时数据,非临时数据是永远不会被剔除的,即便物理内存不够,导致swap也不会剔除任何非临时数据(但会尝试剔除部分临时数据),这点上Redis更适合作为存储而不是cache。

Redis更适合作为存储而不是cache。

3.数据一致性问题

Memcached提供了cas命令,可以保证多个并发访问操作同一份数据的一致性问题。 Redis没有提供cas 命令,并不能保证这点,不过Redis提供了事务的功能,可以保证一串 命令的原子性,中间不会被任何操作打断。

4.存储方式及其它方面

Memcached基本只支持简单的key-value存储,不支持枚举,不支持持久化和复制等功能

Redis除key/value之外,还支持list,set,sorted set,hash等众多数据结构,提供了KEYS

进行枚举操作,但不能在线上使用,如果需要枚举线上数据,Redis提供了工具可以直接扫描其dump文件,枚举出所有数据,Redis还同时提供了持久化和复制等功能。

5.关于不同语言的客户端支持

在不同语言的客户端方面,Memcached和Redis都有丰富的第三方客户端可供选择,不过因为Memcached发展的时间更久一些,目前看在客户端支持方面,Memcached的很多客户端更加成熟稳定,而Redis由于其协议本身就比Memcached复杂,加上作者不断增加新的功能等,对应第三方客户端跟进速度可能会赶不上,有时可能需要自己在第三方客户端基础上做些修改才能更好的使用。

 

根据以上比较不难看出,当我们不希望数据被踢出,或者需要除key/value之外的更多数据类型时,或者需要落地功能时,使用Redis比使用Memcached更合适。

关于Redis的一些周边功能

Redis除了作为存储之外还提供了一些其它方面的功能,比如聚合计算、pubsub、scripting等,对于此类功能需要了解其实现原理,清楚地了解到它的局限性后,才能正确的使用,比如pubsub功能,这个实际是没有任何持久化支持的,消费方连接闪断或重连之间过来的消息是会全部丢失的,又比如聚合计算和scripting等功能受Redis单线程模型所限,是不可能达到很高的吞吐量的,需要谨慎使用。

总的来说Redis作者是一位非常勤奋的开发者,可以经常看到作者在尝试着各种不同的新鲜想法和思路,针对这些方面的功能就要求我们需要深入了解后再使用。

总结:

后续关于Redis文章计划:

关于作者

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/537282.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月9日 13:20:03
下一篇 2025年11月9日 13:22:32

相关推荐

  • 统一交易帐户(UTA)是什么?Bybit统一交易帐户新手使用全教程

    目录 Bybit统一交易帐户(UTA)是什么?Bybit统一交易帐户新手使用全教程统一交易帐户支持的保证金模式Bybit 统一交易帐户风险分析Bybit 统一交易帐户优点:升级无门槛Bybit 统一交易帐户优点:资金效率高Bybit 统一交易帐户优点:高收益期现套利Bybit 统一交易帐户缺点:连带…

    2025年12月11日 好文分享
    000
  • 什么是加密货币资金费率套利?期货交易者的完整指南

    目录 什么是资金费率套利?永续期货中的资金费率如何运作?为什么不同交易所的资金费率会有所不同?内核资金费率套利策略资金费率套利的首选平台和工具作为交易者如何入门?资金费率套利作为一种交易策略是否能获利?资金费率套利有哪些成本、风险和挑战?总结资金费率套利常见问题1. 资金费率套利是无风险的吗?2. …

    2025年12月11日
    000
  • 为什么币安需要实名认证?币安实名认证操作流程

    目录 为什么币安需要实名认证?币安实名认证操作流程实名认证的重要性安全注意事项 对于中国用户而言,使用币安交易所时最常遇到的难题之一就是实名认证环节。根据2023年coingecko发布的数据,超过68%的亚洲用户因kyc(了解你的客户)流程问题而影响了交易体验。 那么,币安为何要求实名认证?具体该…

    2025年12月11日 好文分享
    000
  • Binance币安账号教学指南:为什么需要删除账号?如何安全删除?(APP/Web端)

    目录 什么要删除币安帐号呢币安帐号删除流程教学币安帐号删除APP 教学币安帐号删除网页版教学币安帐号删除完成 注册binance 币安交易所(官方注册 官方下载)后,难免会遇到要将币安帐号删除的问题,如:不小心泄漏你的加密货币交易所帐号资讯、没用到推荐码导致无法使用优惠等。 此时若你不知道如何删除币…

    2025年12月11日 好文分享
    000
  • 什么是Mitosis (MITO)币?值得买吗?MITO代币经济学及价格预测

    目录 简要总结:为什么您最近应该关注 MITO?MITO 概述什么是 Mitosis (MITO)?MITO 如何运作?关于MITO的融资信息MITO的代币经济学Mitosis价格预测Mitosis 2025 年价格预测Mitosis 2026-2031 年价格预测Mitosis 2031-2036…

    2025年12月11日
    000
  • WLFI币价格预测2025-2030年:未来走势如何?能涨到多少?

    目录  WLFI币是什么?WLFI币有多火?WLFI币为什么火?世界自由金融(WLFI币)2025-2030年价格预测世界自由金融(WLFI)价格预测2025–2030年WLFI价格预测世界自由金融(WLFI)2026年价格预测世界自由金融(WLFI)2027年价格预测世界自由金融(WLFI)202…

    2025年12月11日
    000
  • 即将上线的Gata(GATA币)是什么?怎么样?GATA币技术路径和代币经济学概述

    目录 什么是 Gata:定位和产品边界应用程序/入口点和“可验证数据表面”架构:执行网络 × 数据与数据挖掘 × 应用协同工作应用层数据和存储层执行和 DA 层代币经济学:供应、分配和效用代币效用生态系统伙伴关系和外部信号近期进展和路线图常问问题关键要点 gata 同时构建了“应用程序可用性”和“去…

    2025年12月11日
    000
  • 火币HTX OTC业务负责人AD解读:以“0冻结+100%赔付”重塑C2C交易安全

    目录 品质升级的必然之路“0冻结”的秘诀100%全额赔付的底气未来规划:让用户用得安心关于火币HTX  8月28日,火币htx otc业务负责人ad受邀出席“火币高管面对面”第四期活动。他详细解读了火币htx全新的c2c交易机制,即“0冻结+100%全额赔付”,并阐述了这一机制如何为场外交易提供安全…

    2025年12月11日
    000
  • BI安Binance交易所 v3.2.5安卓版 BI安2026官方正式版下载

    BI安(Binance)是一款全球领先的数字资产交易平台,为广大用户提供安全、稳定、便捷的数字货币交易服务。它支持多种主流及新兴的数字资产,并以其强大的技术实力、深度的市场流动性以及严格的资金安全保障体系,赢得了全球用户的信赖。 BI安Binance交易所官网入口: BI安专属下载链接: 下载步骤详…

    2025年12月11日
    000
  • 什么是Camp Network(CAMP币)?CAMP代币经济学及价格预测

    目录 简要概述为什么您最近应该关注CAMP?CAMP概述什么是CAMP (CAMP)?CAMP的特点CAMP是如何运作的?模块化架构质押和验证者系统关于CAMP的融资信息CAMP的代币经济学代币功能性为何选择Camp Network?CAMP值得购买吗?Camp Network价格预测Camp Ne…

    2025年12月11日
    000
  • 什么是加密货币暗池交易?如何运作?优势与风险详解

    目录 什么是加密货币暗池交易?加密货币暗池交易如何运作?加密货币暗池交易的优势市场情绪影响减弱无滑点价格上涨加密货币暗池交易的风险价格不准确信息不对称掠夺行为缺乏透明度加密货币暗池交易与加密货币交易加密货币暗池交易平台sFOXOasis Pro 市场是否应该尝试加密货币暗池交易?结语 “暗池”这个词…

    2025年12月11日
    000
  • 什么是双因素身份验证 (2FA)?它为什么重要?

    双因素身份验证(Two-Factor Authentication, 简称2FA)是一种安全流程,用户在访问账户或系统时,需要提供两种不同类型的凭证来验证自己的身份。它在传统的用户名和密码验证基础上,增加了一道额外的安全屏障。 这种验证方式的核心理念在于,单一的验证因素(比如密码)很容易被破解或窃取…

    2025年12月11日
    000
  • 狗狗迷因币要暴涨?2025年潜力最大的5大狗狗主题迷因币

    目录 为什么狗狗主题币在加密迷因文化中占据主导地位?2025年排名前5的狗狗主题迷因币1. 狗狗币($DOGE)– 迷因币之父2. 柴犬币 ($SHIB) – 具有 DeFi 用例的狗狗币杀手3. 戴帽狗 ($WIF) – 具有病 毒 式传播势头的Solana狗币4. Floki Inu ($FLO…

    2025年12月11日
    000
  • Layer 2中的rollup是什么?通俗解释Layer 2中的rollup

    在探讨区块链技术时,经常会遇到一个核心挑战:可扩展性。我们可以把以太坊这样的主区块链(Layer 1)想象成一条城市的主干道。当交通流量(也就是交易数量)非常大的时候,这条主干道就会变得异常拥堵,导致通行缓慢并且“过路费”(交易手续费)飙升。为了解决这个问题,人们提出了Layer 2方案,它好比在主…

    2025年12月11日
    000
  • 以太坊货币转换器是什么大白话讲解

    以太坊货币转换器是一个简单实用的在线工具,它的主要功能是帮助你实时查询以太坊(ETH)与其他法定货币之间的兑换比率。简单来说,它就像一个“汇率计算器”,只不过一端是数字资产以太坊,另一端是我们日常使用的货币,如美元、欧元等。 以太坊主流交易所官网地址及APP链接 1、币安binance: 2、欧易O…

    2025年12月11日
    000
  • 二饼以太坊什么意思通俗讲解

    “%ignore_a_1%”这个词听起来可能有点复杂,但它其实是解决以太坊网络拥堵和费用高昂问题的一项关键技术。本文将用一个简单的比喻,帮助你轻松理解它是什么,以及它为什么如此重要。 以太坊全球交易平台官网地址及软件下载链接 1、币安Binance: 2、欧易OKX: 3、火币HTX: 4、大门Ga…

    2025年12月11日
    000
  • 以太坊10周年是哪天 以太坊十周年是几月几号

    随着时间的推移,以太坊已经从一个前沿概念发展成为全球领先的去中心化应用平台。本文将明确指出其十周年纪念日的具体日期,并回顾其发展历程中的关键时刻,帮助您理解这一里程碑事件的重要意义。 以太坊全球主流交易平台官网地址及APP链接 1、币安binance: 2、欧易OKX: 3、火币HTX: 4、大门G…

    2025年12月11日
    000
  • Render(RNDR币)是什么?为什么要买RNDR 代币?工作原理、代币介绍

    目录 Render 是什么?2025 年加密与渲染快照渲染网络的工作原理渲染工作中的关键加密创新RNDR 代币和销毁铸造平衡(BME)渲染网络解决了什么问题?为什么要购买 RNDR 代币?渲染网络原点渲染代币经济学和加密货币增长RNDR币会是下一个SOL币吗?RNDR会成为下一个百倍币吗? Rend…

    2025年12月11日
    000
  • 什么是“Gas费”,为什么这么高?一文带你了解Gas费

    binance币安交易所 注册入口: APP下载: 欧易OKX交易所 注册入口: APP下载: 火币交易所: 注册入口: APP下载: 在区块链的世界里,特别是以以太坊为代表的智能合约平台,用户在进行任何操作时几乎都会遇到一个概念——“Gas 费”。这个词汇对于初次接触的人来说可能有些陌生,但它却是…

    2025年12月11日
    000
  • 加密货币推广话术是什么大白话解释

    您是否曾在社交媒体或聊天群里看到过一些极具煽动性的话语,鼓励您立即购买某种新兴的数字资产?这些通常就是精心设计的“推广话术”。本文将用最直白的方式为您揭示这些话术的本质,并教您如何识别其中的常见套路,帮助您在信息繁杂的世界中保持清醒。 加密货币主流交易所官网入口及APP下载链接 1、币安binanc…

    2025年12月11日
    000

发表回复

登录后才能评论
关注微信