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

编写网站策划书赣州是哪个省

编写网站策划书,赣州是哪个省,犬舍网站怎么做,wordpress 复制 图片不显示图片本内容是对知名性能评测博主 Anton Putra Redis vs Memcached Performance Benchmark 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准 在本视频中,我们将对比 Redis 和 Memcached。我会介绍一些功能上的不同,但主要关注 性能。 首先&#xf…

本内容是对知名性能评测博主 Anton Putra Redis vs Memcached Performance Benchmark 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准

在本视频中,我们将对比 RedisMemcached。我会介绍一些功能上的不同,但主要关注 性能

首先,我们会衡量缓存系统最重要的指标之一---延迟(latency),使用 p99 百分位数。缓存系统最常见的操作是 set(写入)get(读取),因此我们将重点测试这两个操作。此外,我们还会衡量:

  • 吞吐量(throughput):即每秒可处理的操作数
  • 饱和度(saturation):通过监控 CPU 使用率、内存使用率 以及 网络流量 来评估

所有测试均在 AWS 上运行,并使用与生产环境完全相同的基础设施。本次测试中,我们使用 m7a.medium 实例来运行 Redis 和 Memcached。众所周知,Redis 主要依赖 单线程,因此垂直扩展能力有限。

接下来,我会介绍测试设计。此外,我还使用了 EKS(Elastic Kubernetes Service) 集群,运行 Graviton 实例来部署监控组件,同时运行客户端以模拟负载。


什么是缓存?

假设你有一个典型的 三层架构

  1. 客户端层:可能是浏览器或移动应用
  2. 逻辑层:运行应用程序和业务逻辑
  3. 数据层:用于持久化存储数据

举个例子,假设你运营一个 电商网站,所有 用户数据商品信息 都存储在 关系型数据库 中。每当客户登录账户时,你需要展示他们的 姓名、收货地址 以及其他详细信息。

这些数据并不会频繁变更,但每次请求时,仍然需要查询数据库。如果你的用户数量较少,这还可以接受,但如果有成千上万的用户,这些查询 会变得越来越慢

解决方案是:
当用户登录时,查询数据库并将数据存储在缓存中(例如 60 秒)
这样可以 提高用户体验,加快网站加载速度,并减少数据库负载。

你还可以缓存其他 SQL 查询,比如 最畅销商品,以便在首页展示。这就是缓存系统最初解决的问题---缓存 SQL 查询结果,存入临时存储。

之后,缓存系统的使用场景不断扩展,并发展出了 持久化存储 等额外功能。

目前,Memcached 仍主要用于 缓存数据库查询,而 Redis 则发展出了 丰富的功能集


测试设计

为了保证测试的公平性,我每次都会使用 Terraform 创建所有基础设施。

  • 本次测试使用 medium(中等)实例,因为 Redis 是单线程的,只能通过 水平扩展(Redis 集群) 进行扩展。
  • 另外,我创建了一个 EKS 集群,并部署 Prometheus、Grafana 等监控组件,还配置了 每种缓存 20 个客户端 来模拟负载。
  • 我会 逐步增加客户端数量,直到 Redis 和 Memcached 都达到极限
  • 每次测试通常运行 1.5 - 2 小时

配置概览

  • 我使用当前最新版本:

  • Redis 7.4.1
  • Memcached 1.6.32

  • Redis
    • 采用最小化配置,保留大部分默认设置
    • 禁用持久化
    • 最大连接数设为 10,000

  • Memcached

    • 默认内存从 64MB 增加到 4GB(与 VM 限制一致)
    • 最大连接数同样设为 10,000
  • 客户端

  • 使用 Go 语言开发
  • 内部集成 Prometheus 指标
  • 采用 最流行、最高效的驱动
  • 不使用内部缓存指标,而是通过 相同的直方图桶 从客户端端测量延迟,以确保测试更加准确。

第一次测试

接下来,我们开始运行测试。

在下方的图表中,你可以看到我们逐步增加客户端数量。

Redis 的 set(写入)延迟从一开始就比 Memcached 略慢,但 get(读取)延迟在最初几分钟几乎相同
然而,当负载增加时,情况开始发生变化

  • CPU 使用率 在整个测试过程中几乎相同
  • 内存使用情况 也相似,但呈现出不同的模式:
    • set 操作设置 20 秒的过期时间,因此 Redis 和 Memcached 每 20 秒都会删除数据
    • 两者的内存清理方式不同
  • 网络传输的数据量 也有一些不同

当操作数达到 50,000 次/秒 时,Redis 开始落后于 Memcached,并且 延迟上升到 10 - 15 毫秒
相比之下,Memcached 在整个测试过程中保持稳定

在网络上,你可能会看到 Memcached 的性能比 Redis 更强,但 延迟才是最关键的指标
更高的延迟意味着网页加载更慢,最终影响用户体验。

尽管 Redis 具有丰富的功能,但你真的需要它们吗?

Redis 集群难以扩展和维护,你可能需要不断添加 新的分片(shard) 并进行 重新平衡
通常,很多人一开始自己管理 Redis,但随着负载增加,他们会转向 Redis 集群
经历几次 生产事故 后,最终可能会选择 昂贵的托管 Redis(AWS 或其他云服务)

相比之下,Memcached 非常容易运行,如果你 只是想缓存 SQL 查询 以加速数据库,Memcached 是一个不错的选择


测试结果

在 CPU 资源耗尽之前:

  • Redis 最高处理能力:94,000 请求/秒
  • Memcached 最高处理能力:112,000 请求/秒

最重要的还是延迟
根据本次测试结果,你可以自己决定:

  • 是选择简单、低延迟的 Memcached
  • 还是选择功能强大的 Redis

请记住,维护 Redis 集群非常困难,很多公司甚至专门雇人 只负责维持 Redis 的正常运行



现在,我们查看整个测试期间的各项指标:

  1. 每秒操作数(Operations per second)

  • 50,000 ops/sec 时,Redis 和 Memcached 的性能开始出现差异
  • 可以清楚地看到 每种缓存的最大处理能力
  1. SET(写入)操作的延迟

  • 延迟差异 非常明显
  • 在 Redis 过载时,延迟甚至接近 SQL 查询本身的延迟(35ms)
  • 但在 CPU 使用率低于 15% 时,两者的延迟都很稳定且较低
  1. GET(读取)操作的延迟

  • 趋势类似,但 GET 操作的平均时间约为 SET 操作的一半
  • Redis 最高 GET 延迟约为 20ms
  1. CPU 使用率

  • 两者表现几乎相同,在 CPU 满载前都能维持稳定
  1. 内存使用

  • 两者模式稍有不同
  1. 网络使用

  • 有一定的区别

总结

这些测试都使用的是 默认配置
如果你能优化 Redis 或 Memcached,欢迎提交 PR(Pull Request),我会给予 署名,并分享如何改进性能。

http://www.cadmedia.cn/news/1025.html

相关文章:

  • 乌鲁木齐城乡建设委员会的网站武汉seo顾问
  • 建设飞鹰摩托车官方网站百度里面的站长工具怎么取消
  • 深圳网站关键词排名优化网络推广公司运营
  • 杭州网站建设企业网页模板设计
  • 常德建设网站轻饮食网络推广方案
  • 北京西站到大兴机场昆明优化网站公司
  • 商务型网站有哪些最新热点新闻事件素材
  • 建设网站需要那几部今日热榜
  • 泉州网站网站建设河南省郑州市金水区
  • 毕业设计如何用dw做网站谷歌google搜索引擎入口
  • 个人网站备案条件全国新闻媒体发稿平台
  • 免费浏览器网站粤语seo是什么意思
  • 哈尔滨网站建设托管广州网站优化方案
  • 中国肺炎疫情最新消息推广优化师
  • 宝应网站建设seo专业优化公司
  • 网站和新媒体建设审批制度优化大师免费安装下载
  • 建设公司官网流程seo学徒招聘
  • 建工网校建筑工程网厦门seo外包服务
  • 合肥网站建设需怎么推广app让人去下载
  • 电商网站建设培训班今日最新新闻重大事件
  • 合肥关键词快速排名seo站长平台
  • 网站还没建设好可以备案吗全球十大搜索引擎排名
  • 学校网络建设方案泰州网站建设优化
  • 广州公司注册代理公司哪家比较靠谱旺道seo网站优化大师
  • 烟台市住房城乡建设委官方网站营销型网站有哪些
  • 亚马逊培训费用一般多少莆田百度seo公司
  • 余姚网站推广自己怎么开电商平台
  • 网站做推广下载优化大师安装桌面
  • 安全员证查询网上查询优化网站性能监测
  • 成都网站制作成都网站制作百度优化seo