当前位置: 首页 > 知识库问答 >
问题:

Redis作为缓存和队列使用同一实例

楚志强
2023-03-14

我的应用程序需要两个缓存用例:

  1. Redis作为缓存。我计划使用allkey-lru内存策略按id缓存项(JSON Blob)。平均JSON项目将采取

我是否可以在不影响性能的情况下将Redis的单个实例用于两个目的?为了更好的性能,把它们拆分是不是更好?谢谢你。

共有2个答案

梅修贤
2023-03-14

Redis是单线程的,因此使用2个redis而不是1个redis可以获得更多的CPU功率。您仍然需要管理2个数据库(可以很好地缩放,但需要更多的备份操作等)。

如果你在redis中不需要大量的CPU功率(需要大量计算的功能,如LUA脚本),我不认为使用2个redis而不是1个会有很大的不同。大多数情况下,I/O是驱动性能的最慢部分,因为Redis是内存数据库,所以不会有太大影响。

韦高阳
2023-03-14

没有理由不去尝试;但是,我建议在同一个redis实例中使用两个数据库,这样,如果您想将大小增加到两个单独的实例,就可以在另一个单独的db上转储和重新定位。

两个实例比一个要快,但在您了解自己的需求之前,将成本翻一番是没有意义的,但如果要做到这一点,将db分开将使该过程稍微不那么痛苦。

 类似资料:
  • 问题内容: 我是Redis的新手,并试图找出一种简单的方法将Redis用作C#应用程序的本地缓存。我已经从https://github.com/MSOpenTech/redis/releases下载并运行redis服务器 我可以成功存储键值并按以下方式检索它: 我想限制Redis在我的服务器上使用的内存量,我也想让Redis在内存填满时自动清除值。我尝试了maxmemory命令,但是在redus-

  • 问题内容: 我有postgres 9.3 db,我想使用Redis来缓存对数据库的调用(基本上像memcached一样)。我遵循了这些文档,这意味着我已经基本配置了redis以用作LRU缓存。但是不确定下一步该怎么做。如何告诉Redis跟踪对数据库的调用并缓存其输出?我怎么知道它正在工作? 问题答案: 用伪代码: 这可能必须是您正在使用的查询引擎的自定义适配器。

  • 问题内容: 我需要使用php创建一个具有大量数据的mysql数据库的解决方案。我的程序将有许多要求,我认为如果我使用缓存和OO数据库,我会得到很好的结果,但是我没有经验。 我认为,例如,如果我将保存在mysql中的信息缓存到redis数据库中,性能将会提高,但是我不知道这是否是个好主意,因此我希望有人来帮助我选择。 抱歉,如果我的英语不太好,我来自巴西。 问题答案: 是的,redis对此很有帮助。

  • 本文向大家介绍如何高效使用Redis作为LRU缓存,包括了如何高效使用Redis作为LRU缓存的使用技巧和注意事项,需要的朋友参考一下 当用Redis作为一个LRU存储时,有些时候是比较方便的,在你增添新的数据时会自动驱逐旧的数据。这种行为在开发者论坛是非常有名的,因为这是流行的memcached系统的默认行为。 LRU实际上只是支持驱逐的方式之一。这页包含更多一般的Redis maxmemory

  • 我需要用唯一的元素在Redis中实现队列。目前,我正在使用Redis List实现队列(LPUSH,RPOP),并使用Redis SortedSet/Set实现唯一性。 由于密钥的高负载/请求,Redis缓存服务器使用了更多的CPU。此外,上面的方法占用了更多的内存大小(相同的密钥在列表和Sortedset中都被删除),还有没有其他方法来实现具有密钥唯一性的Redis队列呢?

  • 1. 前言 在MyBatis 缓存一节中,我们介绍了 MyBatis 的多级缓存。MyBatis 的二级缓存可在多个会话中共享缓存,但是这也加大了内存的使用空间,如果二级缓存空间占有量过多势必会导致程序运行空间的不足,因此我们需要将二级缓存转移到专业的缓存服务器上。 Redis 是一个高性能的 kv 数据库,被广泛的使用在缓存服务上,MyBatis 项目开发者提供了 Redis 缓存的实现。本小节