我对redis和数据库都是新手。我不知道什么时候应该使用get/set命令,什么时候应该创建哈希表并使用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命令有什么区别?它们的一些用例是什么?
谢谢
1条答案
按热度按时间fcy6dtqo1#
hash用于存储redis中的对象,get/set用于存储单个字符串(或int)。
根据您的描述,在您的情况下,hset和get/set没有什么不同。如果您的redis db仅用于mystore对象(或类似的对象),那么您可以使用get/set with key。
如果有多个类似的mystore对象,我建议将其转换为hash,因为组织键值要容易得多。
为了提高性能,key-value-string和hash都由dict实现(如果数据集很小,hash将使用ziplist)。所以它总是o(1)时间复杂度。