【发布时间】:2015-11-01 11:23:41
【问题描述】:
我在内存缓存中设置了 10000 个键
for i in 1..10000
Rails.cache.write("short_key#{i}", i)
end
大约 500 秒后(未进行基准测试,但发生在 10m 左右),当我这样做时
_random = rand(10000)
Rails.cache.read("short_key#{_random}")
返回零。这可以。 Memcached LRU 策略可能已经破坏了这些键。
但是,问题是我看到服务器上有很多可用内存。
另外,当我在 telnet 会话中运行以下命令时,
stats cachedump 1 10
我得到了一些我之前在循环中设置的随机键,即使我尝试通过 rails 或 telnet/get 获取它们,memcached 也无法读取该值。
那些键/值正在消耗内存,但不知何故被破坏了。
我使用dalli 连接memcached。
我该如何纠正这个问题?
【问题讨论】:
标签: ruby-on-rails memcached dalli