当前位置: 首页 > 知识库问答 >
问题:

Redis缓存读取性能-根键/值对vs分层结构?

申查猛
2023-03-14

假设我想存储用户首选项...简单的如下所示:

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

在redis缓存中存储这些内容的最佳、性能最好的方法是什么(针对读取进行了优化)?

user-123-favoriteColor=green(这是字符串类型)
user-123-bestFriends=1)“bestfriends”(集类型)2)“Tom”3)“Jenny”4)“Horton”

层次结构(值的哈希)

用户-123=1)“FavoriteColor”(字符串类型)2)“Green”3)“BestFriends”(集类型)4)“Tom”5)“Jenny”6)“Horton”

还有一个相关的问题...有什么理由不把用户偏好存储在redis vs域sql数据库中吗?

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

共有1个答案

汤枫涟
2023-03-14

分层结构应该是首选的。
这个答案给了很多解释,帮了我的忙。

 类似资料:
  • 我必须使用StackExhange.redis C#在redis缓存中频繁添加N个(独立的)项,每个项都有不同的过期时间,以便在客户端有最小的时间,在服务器端有最小的阻塞和成本。Redis服务器每秒将收到数百个get请求,所以我不想打乱get时间。 我已经阅读了这里的文档并在这里回答。我找不到一个执行此操作的方法。考虑到不同的选择: null

  • 我一直在研究Redis(完全没有经验,只是研究了理论),在做了一些研究之后,发现它也被用作缓存。例如StackOverfolow it self。 有什么好处吗? 我试图直接浏览这个答案redis-cache-vs-using-memory-,但我想我没有得到答案中的关键行: “基本上,如果您需要您的应用程序在共享相同数据的几个节点上进行扩展,那么将需要类似Redis(或任何其他远程键/值存储)的

  • 问题内容: 我想在python中创建一个redis缓存,作为任何自尊的科学家,我都做了一个基准测试性能。 有趣的是,redis的表现并不那么好。Python做一些不可思议的事情(存储文件),或者我的redis版本太慢了。 我不知道这是否是因为我的代码的结构方式或原因,但是我希望redis比它做得更好。 为了进行Redis缓存,我将二进制数据(在本例中为HTML页面)设置为从文件名派生的密钥,有效期

  • 问题内容: 尝试从Redis排序集中读取1M记录时突然遇到性能问题。我使用的光标和批处理大小为5K。 代码是在托管Redis的同一台计算机上使用Erlang R14执行的。批量接收5K元素大约需要1秒。不幸的是,我无法在这台机器上编译Erlang R16,但是我认为这没有关系。 为了进行比较,带有node_redis(hiredis解析器)的Node.js代码在2秒内达到了1M。Python和PH

  • 我安装了Redis来评估是否可以使用它来缓存对象集合;每个密钥包含一个更新的时间序列,每个更新是一个字节[5000]。我对我运行的一个简单测试的结果感到惊讶--我插入了1000个数组;每个都是一个字节[5000]。在本地读取计算机上运行LRANGE的完整列表需要20秒才能完成。我通过改变我检索到的Byte[5000]对象的数量进行了测试,并且检索的时间与所请求的数据大小成比例o(n),正如预期的那

  • 我有一个redis缓存数据库,可以保存80k条记录。我需要在我的应用程序中获取整个数据(键和值)。我使用的是绝地武士客户端,下面是我使用的代码: 以上代码有效。我得到了80k个密钥,它循环遍历每个密钥以获得值,哈希映射用密钥和值填充。我还没有在这里添加迭代器的代码,我认为这与我的问题无关,但如果需要,我可以添加它。 我的问题是性能,这需要很长时间(