caching - 多个微服务如何使用redis?

标签 caching redis microservices

我对 Redis 非常陌生。过去几天我一直在研究 redis。我阅读了有关缓存管理(lru 缓存)、命令等的文档。我想知道如何为多个微服务数据实现缓存。 我有几个问题:

  1. 是否可以将所有微服务数据(缓存)保存在单个 redis 实例下 服务器?
  2. 每个微服务都应该在redis中有自己的缓存数据库吗?

  3. 如何在不设置EXPIRE的情况下刷新缓存数据?因为它会消耗更多内存。

有关使用微服务的 redis 最佳实践的更多信息将会有所帮助。

最佳答案

可以为多个微服务使用相同的 Redis,只需确保为您的 Redis 缓存键添加前缀,以避免所有微服务之间发生冲突。

您可以在同一个 redis 实例中使用多个数据库(即每个微服务一个),但不鼓励这样做,因为 Redis 是单线程的。

最好的方法是为每个微服务使用一个 Redis,然后您可以轻松地刷新其中一个而无需触及其他。

根据我个人在生产中使用redis缓存的经验(有200万个key),使用EXPIRE是没有问题的。我鼓励您使用它。

关于caching - 多个微服务如何使用redis?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36832219/

相关文章:

microservices - 词汇题: am I doing a micro-service or just SOA?

java - 从内存而不是磁盘读取文件

ios - 如何将图像下载到本地磁盘并在 View Controller 中设置 ImageView 的图像?

c# - 订阅 redis channel 不会保持事件状态

python - 用于 nginx/uwsgi 服务器的持久内存中 Python 对象

java - Spring "cacheNames"不适用于 "key"

c# - 如何在单线程中使缓存值失效?

java - spring boot缓存redis,key有\xac\xed\x00\x05t\x00\x06

javascript - nanoscale.io 商店的查询语法

domain-driven-design - 前端与ddd微服务后端的业务逻辑重复