【问题标题】:Redis cache read performance - root key/value pairs vs hierarchical structure?Redis 缓存读取性能 - 根键/值对与层次结构?
【发布时间】:2016-12-20 00:36:54
【问题描述】:

假设我想存储用户首选项...像这样简单:

{
    "favoriteColor": "green",
    "bestFriends": [
        "Tom",
        "Jenny",
        "Horton"
    ]
}

将其存储在 redis 缓存中的最佳、最高性能的方法是什么(针对读取进行了优化)?

想象一下 UserId = 123

注意:下面我使用 Redis 文档的方式来表示各种结构。见here。

  1. 就在根目录中的简单、扁平、键/值对?

    user-123-favoriteColor = green (this is a STRING type)
    user-123-bestFriends = 1) "bestFriends" (SET TYPE) 2) "Tom" 3) "Jenny" 4) "Horton"

  2. 层次结构(值的散列)

    user-123 = 1) "favoriteColor" (STRING type) 2) "green" 3) "bestFriends" (SET TYPE) 4) "Tom" 5) "Jenny" 6) "Horton"

还有一个相关的问题...有什么理由不将用户首选项存储在 redis 与域 sql 数据库中?

还有一个相关的问题...将所有用户存储在一个名为“users”的根键下是不是一个坏主意?

【问题讨论】:

    标签: performance redis


    【解决方案1】:

    应首选分层结构。
    这个answer给了我很多解释并帮助了我。

    【讨论】:

      【解决方案2】:

      From the horses mouth:

      尽可能使用哈希
      小散列被编码在一个非常小的空间中,因此您应该尽可能尝试使用散列来表示您的数据。例如,如果您在 Web 应用程序中有代表用户的对象,而不是使用不同的键来表示姓名、姓氏、电子邮件、密码,而是使用包含所有必填字段的单个哈希。 如果您想了解更多信息,请阅读下一部分。

      所以答案是肯定的,尽可能使用哈希。

      回答here是个好办法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-16
        • 1970-01-01
        • 1970-01-01
        • 2016-09-15
        • 1970-01-01
        • 1970-01-01
        • 2017-08-01
        • 1970-01-01
        相关资源
        最近更新 更多