Caching 如何将redis用于多个微服务?
我对redis很陌生。过去几天我一直在研究redis。我阅读了有关缓存管理(lru缓存)、命令等的文档。我想知道如何为多个微服务数据实现缓存。 我有几个问题:Caching 如何将redis用于多个微服务?,caching,redis,microservices,Caching,Redis,Microservices,我对redis很陌生。过去几天我一直在研究redis。我阅读了有关缓存管理(lru缓存)、命令等的文档。我想知道如何为多个微服务数据实现缓存。 我有几个问题: 能否将所有微服务数据(缓存)保存在一个redis实例下 服务器 每个微服务在redis中都应该有自己的缓存数据库吗 如何在不设置过期的情况下刷新缓存数据?因为它会消耗更多的内存 有关使用微服务的redis最佳实践的更多信息将有所帮助。可以对多个微服务使用同一个redis,只需将sur设置为redis缓存键的前缀,以避免所有微服务之间发生冲
有关使用微服务的redis最佳实践的更多信息将有所帮助。可以对多个微服务使用同一个redis,只需将sur设置为redis缓存键的前缀,以避免所有微服务之间发生冲突 您可以在同一个redis实例中使用多个db(即每个微服务一个db),但不鼓励这样做,因为redis是单线程的 最好的方法是为每个微服务使用一个Redis,然后您可以轻松刷新其中一个,而无需触摸其他服务 根据我个人在生产中使用redis缓存(有200万个密钥)的经验,使用EXPIRE没有问题。我鼓励你使用它
请在下面找到您所有问题的答案-
谢谢你的回复。你的意思是说N个redis实例对应N个微服务,对吗?你建议使用N个实例轻松制作flushall,但为什么我们在使用flushdb时会使用flushall?这更像是当你的一个redis出现问题时,对其他微服务没有影响。但是,如果您使用相同的redis,则可以使用flushdb。但请记住,redis是单线程的,flushdb O(N)将阻止其他命令如果你有redis per microservice,为什么不在web应用程序中使用内存缓存呢?为您节省网络延迟和反序列化成本。@DirkBoer取决于您将存储到内存缓存中的项的数量以及您正在运行的计算机的大小。缓存可用于保存对数据库的调用(用于大查询),并存储数百万个无法与微服务存储在同一位置的项目