首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当redis海量插入时读取redis

当redis海量插入时读取redis
EN

Stack Overflow用户
提问于 2014-03-15 12:05:07
回答 1查看 440关注 0票数 1

我有一个全天运行的服务器,使用redis作为数据存储。每天在特定的时间(凌晨3点)有一个巨大的数据更新(近1000万行),而在其他时间更新的数据很少(近100行),而且有很多实时更新。

我选择了redis批量插入模式来加速数据插入,耗时30秒。但是在那个时候,redis的查询性能真的很差。有什么办法可以避免这个问题吗?

如果我使用redis主从模式来分离读和写,并且主写和从读一样。但是当批量插入发生在主机上,也有大量数据需要同步到从机时,我怀疑它是否仍然是备机redis上查询的热点。

对这种方式有什么建议吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-03-17 01:15:28

首先,我会调查瓶颈在哪里。是网络I/O吗?你可能想用(虚拟)网卡建立一个专用的路由,甚至一个专用的互联网连接来解决这个问题。是CPU吗?您可能想要展开批量插入。

如果你使用简单的非事务性流水线,它应该给redis喘息的时间,这样客户端就不会注意到大量插入。

另一种选择是使用客户端连接。让客户端连接到不同的备机,您暂时将其提升为主机。在批量插入完成后,您可以让客户端再次连接到“真正的”从服务器。你也许可以使用redis sentinel来实现这一点,但是使用redis pub/sub你可以实现同样的结果,但需要更多的控制。对存储在HSET中的redis连接主机/端口使用单独的小型redis实例。

希望这能帮上忙,TW

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

https://stackoverflow.com/questions/22419378

复制
相关文章

相似问题

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