首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >多个Redis数据库的意义是什么?

多个Redis数据库的意义是什么?
EN

Stack Overflow用户
提问于 2013-04-26 01:59:07
回答 5查看 93K关注 0票数 208

因此,我想要将存储在redis中的数据分割到单独的数据库中,因为我有时需要对特定类型的数据使用key命令,并希望将其分开以使速度更快。

如果我分割成多个数据库,所有东西仍然是单线程的,并且我仍然只能使用一个核心。如果我只是在同一个机器上启动另一个Redis实例,我就可以使用额外的内核。最重要的是,我不能命名Redis数据库,也不能给它们任何更符合逻辑的标识符。所以,说了这么多,为什么/什么时候我会想要使用多个Redis数据库,而不是仅仅为我想要的每个额外的数据库创建一个额外的Redis实例?与此相关的是,为什么Redis不尝试为我添加的每个额外的数据库使用额外的核心?跨数据库的单线程有什么优势?

EN

回答 5

Stack Overflow用户

发布于 2013-04-27 03:26:10

您不希望在单个redis实例中使用多个数据库。正如您所提到的,多个实例可以让您充分利用多个内核。如果使用数据库选择,则必须在升级时进行重构。监控和管理多个实例并不困难,也不痛苦。

实际上,通过基于实例的隔离,您将在每个数据库上获得更好的指标。每个实例都有反映该数据段的统计信息,这可以实现更好的调优和更快速、更准确的监控。使用最新版本并按实例分隔您的数据。

正如Jonaton所说,不要使用keys命令。如果只创建一个键索引,您会发现性能要好得多。每次添加密钥时,请将密钥名称添加到集合中。一旦进行了扩展,keys命令就不是特别有用了,因为它需要很长时间才能返回。

让访问模式决定如何组织您的数据,而不是以您认为的方式存储数据,然后解决如何在以后访问和切割数据。您将看到更好的性能,并发现使用数据的代码通常要干净和简单得多。

关于单线程,考虑到redis是为速度和原子性而设计的。当然,在一个数据库中修改数据的操作不需要等待另一个数据库,但如果该操作是保存到转储文件中,或者在从数据库上处理事务,该怎么办?在这一点上,您开始进入并发编程的杂草。

通过使用多个实例,您可以将多线程的复杂性转化为更简单的消息传递风格的系统。

票数 113
EN

Stack Overflow用户

发布于 2015-03-24 20:29:46

我正在使用redis实现电子邮件地址的黑名单,并且我对不同级别的黑名单有不同的TTL值,因此在同一实例上拥有不同的DB对我有很大帮助。

票数 2
EN

Stack Overflow用户

发布于 2015-06-15 20:04:24

Redis数据库可以在部署应用程序的新版本的极少数情况下使用,新版本需要使用不同的实体。

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

https://stackoverflow.com/questions/16221563

复制
相关文章

相似问题

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