database - Redis变慢的原因

标签 database nosql redis

Redis 工作/响应缓慢的原因可能是什么?

即我在 Stackoverflow 上发现,在 Redis 中存储大文件或数据会使速度变慢。还有什么?

最佳答案

这个问题没有简单的答案。对于所有基于 NoSQL 或 SQL 的存储解决方案,有很多情况可能会导致存储引擎的高延迟或缓慢。 Redis 也不异常(exception)。

我建议从阅读开始:

以下是潜在原因的非详尽列表:

  • 硬件不足(网络、内存、CPU)
  • 基于软件的虚拟化(例如低端硬件上的 Xen)
  • 内存不足,在操作系统级别产生交换
  • 在单线程引擎中执行了过多的 O(n) 操作(如 KEYS)
  • Redis 中存储的大型对象,导致通信缓冲区不受控制地扩展
  • 大量的同时 session (>30000)
  • 每秒连接操作太多(Redis 不是网络服务器,连接应该是永久的,而不是暂时的)。
  • 客户端应用程序生成的往返次数过多(未使用流水线或聚合命令)
  • 由 bgsave 或 AOF 重写生成的大型 fork 操作(尤其是在 VM 上)
  • 使用 AOF 时与 I/O 相关的延迟
  • 累积多次同时触发的过期操作
  • 客户端和主/从通信缓冲区中的内存积累,或缓慢的日志数据
  • TCP incast conditions当网络带宽消耗很大时
  • 使用分布式存储(尤其是云存储,如 EC2 EBS)来存储转储或 AOF 文件

可能还有许多其他原因,与您自己的应用程序产生的工作负载有关。

如果有人考虑其他一般原因,我们可以将他们添加到此列表中。

关于database - Redis变慢的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13450794/

相关文章:

database - 如何将特定的可变 "order"保存到数据库中

nosql - Neo4j(或任何其他图形数据库)建模

javascript - 如何在firebase firestore中按数组字段长度对文档进行排序

java - 按值 K-V 数据库高速搜索

caching - 将redis用于树数据结构

database - 创建 postgres 数据库的 docker 镜像?

database - 分布式架构中的 OrientDB 是否可以跨服务器进行顶点复制?

PHP 搜索 SQL 数据库

Redis 在 Windows7 上不作为 Windows 服务启动

redis - 从slave恢复redis数据到master