您不希望在单个redis实例中使用多个数据库 . 它已弃用,如您所述,多个实例可让您利用多个核心 . 如果使用数据库选择,则必须在升级时进行重构 . 监视和管理多个实例既不困难也不痛苦 .
实际上,通过基于实例的隔离,您可以在每个数据库上获得更好的指标 . 每个实例都有反映该数据段的统计数据,这可以实现更好的调整和更快速响应和准确的监控 . 使用最新版本并按实例分隔您的数据 .
正如Jonaton所说,不要使用keys命令 . 如果您只是创建一个密钥索引,您会发现更好的性能 . 每次添加密钥时,都要将密钥名称添加到集合中 . 一旦放大,keys命令就不是非常有用,因为它需要很长时间才能返回 .
让访问模式决定如何构建数据,而不是按照您认为的方式存储它,然后解决如何访问和稍后删除它 . 您将看到更好的性能,并且发现数据消耗代码通常更清晰,更简单 .
关于单线程,请考虑redis是为速度和原子性而设计的 . 修改一个数据库中的数据的操作无需等待另一个数据库,但如果该操作保存到转储文件或处理从服务器上的事务怎么办?那时你开始进入并发编程的杂草 .
通过使用多个实例,您可以将多线程复杂性转换为更简单的消息传递样式系统 .