当前位置: 首页 > 面试题库 >

Redis字符串与Redis散列代表JSON:效率?

昝光临
2023-03-14
问题内容

我想将JSON有效负载存储到Redis中。我确实有2种方法可以做到这一点:

  1. 一种使用简单的字符串键和值。
    键:用户,值:有效载荷(整个JSON Blob,可以为100-200 KB)

SET user:1 payload

  1. 使用哈希

HSET user:1 username "someone" HSET user:1 location "NY" HSET user:1 bio "STRING WITH OVER 100 lines"

请记住,如果使用散列,则值长度是不可预测的。它们并不都是短的,例如上面的bio示例

哪个内存效率更高?使用字符串键和值,还是使用哈希?


问题答案:

这取决于您如何访问数据:

选择选项1:

  • 如果您在大多数访问权限中使用大多数字段。
  • 如果可能的键存在差异

选择选项2:

  • 如果您在大多数访问中仅使用单个字段。
  • 如果您始终知道哪些字段可用

PS:根据经验,请选择在大多数用例中只需要较少查询的选项。



 类似资料:
  • > 使用简单字符串键和值的一个。 键:用户,值:有效负载(整个JSON blob,可以是100-200 KB) 使用哈希 哪种内存效率更高?使用字符串键和值,还是使用哈希?

  • 我需要你的一些建议。我试图用redis和哈希(redis类型)存储一些非常有效的内存数据。有一些随机字符串列表(在rfc中平均大小是40个字符,但最大可能是255个字符)--它是文件id,例如我们有100kk的file_id列表。我们还需要每个ID的轨道2参数:download_count(int,incremented)和server_id--tiny int,redis config添加了:

  • 执行更新的操作是: 当有多个实例时,我出现在竞争条件下。有没有一种方法以原子的方式更新列表值?

  • 主要内容:认识Redis字符串,Redis字符串命令,简单命令演示string(字符串)是 Redis 中最简单的数据类型。我们知道,Redis 所有数据类型都是以 key 作为键,通过检索这个 key 就可以获取相应的 value 值。Redis 存在多种数据类型,比如字符串、列表、哈希散列等,它们对应的 value 结构各不相同。本节先讲解字符串的相关知识。 认识Redis字符串 Redis 使用标准 C 语言编写,但在存储字符时,Redis 并未使用 C

  • 主要内容:初识hash类型,常用命令汇总,基本命令操作Redis hash(哈希散列)是由字符类型的 field(字段)和 value 组成的哈希映射表结构(也称散列表),它非常类似于表格结构。在 hash 类型中,field 与 value 一一对应,且不允许重复。 Redis hash 特别适合于存储对象。一个 filed/value 可以看做是表格中一条数据记录;而一个 key 可以对应多条数据。下面举一个例子,使用 hash 类型存储表格中的

  • 是否可以在不需要其他字段的情况下更新学生对象的单个字段?假设我想更新年级字段。