首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis (1.2.6):慢查询

Redis (1.2.6):慢查询
EN

Stack Overflow用户
提问于 2010-08-04 18:40:33
回答 1查看 1.3K关注 0票数 2

我们在生产环境中使用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统计信息:

代码语言:javascript
复制
{: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统计信息:

代码语言:javascript
复制
{: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

EN

回答 1

Stack Overflow用户

发布于 2010-08-26 11:41:46

默认情况下,Redis被配置为根据在一段时间内更改的密钥量,不时地将所有数据转储到磁盘(请参阅default config)。

另一种选择是使用append-only file,它更轻量级,但需要某种维护-您需要每隔一段时间运行BGREWRITEAOF,以便您的日志不会变得太大。在Redis config file上有更多关于这方面的内容。

正如Tobias所说,你应该尽快切换到2.0,因为它更快,在许多情况下,使用的内存比1.2.6更少。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3404696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档