azure - 如何在环境之间共享Azure Redis缓存?

标签 azure redis

我们希望节省一些钱,并在开发、测试、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/

相关文章:

docker - redis-sentinel 抛出错误 : "Can' t resolve master instance hostname.“

c# - 与 SQL Azure 的多对多流畅 NHibernate 映射

python - 分页异步迭代器协议(protocol)不可用(适用于 Python 的 Azure SDK)

azure - 将消息从一个服务总线复制到另一个服务总线的最佳方法是什么?

node.js - 如何获取redis中的所有用户

redis - 通过 StackExchange.Redis 在 Redis 中建立二级索引

linux - 恢复 postgres 备份失败,并且/home/myuser 中出现一个具有奇怪名称的不可删除文件 (???2@þ>?yqus????>I?[蓝牙I??i?Ď)

asp.net - 将 MVC 应用程序部署到 Azure 后无法加载 NewtonSoft.JSON

redis - 使用redis查找最长子字符串的最有效方法是什么?

java - 是否可以将 EVAL SHA 与 spring-data redis 一起使用?