ruby-on-rails - 如何评估 Rails 应用程序中 Redis 键值的内存占用?

标签 ruby-on-rails redis

我想为每个用户存储一些用户信息到redis。数据类型为key-value。

例如:

$redis.set("user_info:12345", #{some data})

有什么方法可以评估内存占用吗?

我觉得redis的key和value都会消耗内存,怎么知道消耗了多少内存?

最佳答案

从 v4 开始,我们有 MEMORY USAGE 命令做得更好,它反射(reflect)了键名、它们的值以及内部数据结构的所有相关开销的整个 RAM 消耗。

$redis.memory :usage, key_name

DEBUG OBJECT 输出不是衡量 Redis 中键的内存消耗的可靠方法 - serializedlength 字段以持久化对象所需的字节为单位给出,而不是内存中的实际占用空间,包括数据本身之上的各种管理开销。

为了说明这一点,我创建了一组 250 万个整数并比较了每个整数的输出:

> r.memory :usage, 'testkey'
=> 132003825

> r.debug :object, 'testkey'
=> "Value at:0x7fe739e09a00 refcount:1 encoding:hashtable serializedlength:12404474 lru:729393 lru_seconds_idle:68"
  • MEMORY USAGE 报告 132,003,825 字节 (126 MiB)
  • DEBUG OBJECT 仅报告 12,404,474 字节 (12 MiB) 👎

关于ruby-on-rails - 如何评估 Rails 应用程序中 Redis 键值的内存占用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26051246/

相关文章:

mysql - 尝试从 Rails 应用程序中的远程 MySql 数据库访问数据时出现 ActiveRecord::PendingMigrationError

ruby-on-rails - 启动 Sidekiq 队列时的循环依赖

node.js - req.session undefined with Redis/Express

powershell - 从 redis-cli.exe --stat 获取值

kubernetes - 从 Kubernetes 中的另一个 pod 引用 Helm Redis master

Redis 生产规模

ruby-on-rails - 从对象验证消息中删除字段名称

css - 条件类名和文本 (Rails)

mongodb - 多次调用 redis 或单次调用 Mongo 或其他数据库引擎

ruby-on-rails - 为什么 Rails 的 Composite_primary_keys gem 不起作用?