【问题标题】:Size of redis database (2N or N^2)redis 数据库大小(2N 或 N^2)
【发布时间】:2012-07-15 13:46:27
【问题描述】:

我有一个用 Ruby 编写的 redis 数据库和客户端。 这个数据库的大小是多少?

def follow!(user)
  $redis.multi do
    $redis.sadd(self.redis_key(:following), user.id)
    $redis.sadd(user.redis_key(:followers), self.id)
  end
end

def redis_key(str)
  "user:#{self.id}:#{str}"
end

# Usage:
userA.follow!(userB)

我认为是2N,但有人告诉我是N^2,什么是真的?

【问题讨论】:

    标签: ruby-on-rails ruby nosql redis paradigms


    【解决方案1】:

    Redis 数据库的大小是 INFO 返回的 used_memory_human 值。由于内存优化,从给定的数据结构中猜测实际大小并不容易。最好在有限数量的项目上进行测试并进行推断。

    这里,假设 N 是用户数,你将在 Redis 键空间中有 2N 个集合。这些集合的大小取决于关注者的数量。

    如果所有用户都有一个关注者并且只有一个关注者,您将获得 2N 组 1 项,因此 2N 项。如果所有用户都将所有其他用户作为关注者,您将获得 2N 组 (N-1) 个项目,总共 2N(N-1) 个项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-30
      • 2016-08-12
      • 2011-06-11
      • 1970-01-01
      • 2014-11-04
      • 2020-11-23
      • 1970-01-01
      • 2019-01-17
      相关资源
      最近更新 更多