我们希望节省一些钱,并在开发、测试、QA 甚至生产之间共享我们的 1GB 专用 Azure Redis 缓存。
有没有比在所有键前面加上环境字符串(如“Dev_[key]”、“Test_[key]”等)更好的方法
我们正在使用适用于 .NET 的 StackExchange Redis 客户端。
PS:我们尝试使用便宜的 250GB(共享基础设施),但性能非常慢。读取操作在 600-800 毫秒之间保持一致...没有任何负载(对于约 300KB 的对象)。升级到专用 1GB 服务后,该时间变为 30-40 毫秒。在这里查看更多:StackExchange.Redis with Azure Redis is unusably slow or throws timeout errors
最佳答案
一种方法是 use multiple Redis databases 。我假设这在您的环境中可用:)
与为 key 添加前缀相比,一些优点可能是:
- 数据是分开保存的,您可以在测试中
flushdb
而不触及生产数据 - key 更小,消耗的内存更少
主disadvantage不会利用多个核心,就像在同一服务器上运行多个 Redis 实例一样。显然在这种情况下不是问题。另请注意,正如答案之一所示,此功能并未被弃用。
我看到人们提示的另一件事是数据库是编号的,它们没有有意义的名称。有些人在数据库 0 中创建一个哈希,将每个数字映射到一个名称。
关于azure - 如何在环境之间共享Azure Redis缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31054790/