我们在生产环境中使用Redis 1.2.6。在redis里有161804把钥匙。机器有2 2GB的RAM。
问题:
对Redis的Select查询平均需要0.02秒。但有时需要1.5-2.0秒,我认为只要redis在磁盘上保存修改过的密钥。
我在重启redis前后注意到的一件奇怪的事情是:
在重启之前,"changes_since_last_save“变化太快,正在到达3000+ (在5分钟内)。但在重启后,"changes_since_last_save“保持在20以下。
重新启动前的Redis统计信息:
{:bgrewriteaof_in_progress=>"0", :arch_bits=>"64", :used_memory=>"53288487", :total_connections_received=>"586171", :multiplexing_api=>"epoll", :used_memory_human=>"50.82M", :total_commands_processed=>"54714152", :uptime_in_seconds=>"1629606", :changes_since_last_save=>"3142", :role=>"master", :uptime_in_days=>"18", :bgsave_in_progress=>"0", :db0=>"keys=161863,expires=10614", :connected_clients=>"13", :last_save_time=>"1280912841", :redis_version=>"1.2.6", :connected_slaves=>"1"}重新启动后的Redis统计信息:
{:used_memory_human=>"49.92M", :total_commands_processed=>"6012", :uptime_in_seconds=>"1872", :changes_since_last_save=>"2", :role=>"master", :uptime_in_days=>"0", :bgsave_in_progress=>"0", :db0=>"keys=161823,expires=10464", :connected_clients=>"13", :last_save_time=>"1280917477", :redis_version=>"1.2.6", :connected_slaves=>"1", :bgrewriteaof_in_progress=>"0", :arch_bits=>"64", :used_memory=>"52341658", :total_connections_received=>"252", :multiplexing_api=>"epoll"}不确定这里出了什么问题。
提前谢谢。
Sunil
发布于 2010-08-26 11:41:46
默认情况下,Redis被配置为根据在一段时间内更改的密钥量,不时地将所有数据转储到磁盘(请参阅default config)。
另一种选择是使用append-only file,它更轻量级,但需要某种维护-您需要每隔一段时间运行BGREWRITEAOF,以便您的日志不会变得太大。在Redis config file上有更多关于这方面的内容。
正如Tobias所说,你应该尽快切换到2.0,因为它更快,在许多情况下,使用的内存比1.2.6更少。
https://stackoverflow.com/questions/3404696
复制相似问题