Redis GET/SET 和哈希表的区别
Difference between Redis GET/SET and hash tables
总的来说,我是 Redis 和数据库的新手。我对何时应该使用 GET/SET 命令以及何时应该创建散列 table 并使用 HGET/HSET 命令感到困惑。
假设我想跟踪商店中各种产品的价格。
使用 GET 和 SET:
SET pencil 3
SET eraser 4
SET calculator 60
GET pencil
GET eraser
GET calculator
使用 HGET 和 HSET:
HSET mystore pencil 3
HSET mystore eraser 4
HSET mystore calculator 60
HGET mystore pencil
HGET mystore eraser
HGET mystore calculator
对于这个商店示例,首选哪种方法?使用 GET/SET 命令和使用 HGET/HSET 命令有什么区别?他们的一些用例是什么?
谢谢
Hash 用于在 Redis 中存储对象,GET/SET 用于存储单个字符串(或 int)。
根据您的描述,您的情况与 HSET 和 GET/SET 没有什么不同。如果你的 Redis 数据库只用于 mystore 对象(或类似的东西),你可以只使用 GET/SET with key.
并且如果有多个类似的mystore对象,我建议转换为hash,因为它会更容易组织key-values。
为了性能,key-valuestring和hash都是dict实现的(如果数据集小,hash会使用ziplist)。所以它总是 O(1) 时间复杂度。
总的来说,我是 Redis 和数据库的新手。我对何时应该使用 GET/SET 命令以及何时应该创建散列 table 并使用 HGET/HSET 命令感到困惑。
假设我想跟踪商店中各种产品的价格。
使用 GET 和 SET:
SET pencil 3
SET eraser 4
SET calculator 60
GET pencil
GET eraser
GET calculator
使用 HGET 和 HSET:
HSET mystore pencil 3
HSET mystore eraser 4
HSET mystore calculator 60
HGET mystore pencil
HGET mystore eraser
HGET mystore calculator
对于这个商店示例,首选哪种方法?使用 GET/SET 命令和使用 HGET/HSET 命令有什么区别?他们的一些用例是什么?
谢谢
Hash 用于在 Redis 中存储对象,GET/SET 用于存储单个字符串(或 int)。
根据您的描述,您的情况与 HSET 和 GET/SET 没有什么不同。如果你的 Redis 数据库只用于 mystore 对象(或类似的东西),你可以只使用 GET/SET with key.
并且如果有多个类似的mystore对象,我建议转换为hash,因为它会更容易组织key-values。
为了性能,key-valuestring和hash都是dict实现的(如果数据集小,hash会使用ziplist)。所以它总是 O(1) 时间复杂度。