【发布时间】:2012-11-13 11:18:10
【问题描述】:
在许多 Redis 教程(例如this one)中,数据存储在一个集合中,但多个值组合在一起形成一个字符串(即一个用户帐户可能作为两个条目存储在集合中,“user:1000 :username" 和 "user:1000:password")。
不过,Redis 也有哈希。似乎拥有一个“user:1000”散列会更有意义,其中包含一个“用户名”条目和一个“密码”条目。您无需连接字符串来访问特定值,而是直接在哈希中访问它们。
那么为什么没有使用那么多呢?这些只是旧教程吗?还是 Redis 哈希有性能问题?
【问题讨论】:
-
我认为您指的是命令 SET,它实际上是使用字符串数据类型。它只是一个键/值对,而不是实际的 Sets 数据类型(使用 SADD 添加到集合中)。
-
你是对的,它使用的是 SET 命令。我没有意识到这是一个单独的数据类型,但这是有道理的。
-
不知道性能差异,写小基准测试github.com/logrusorgru/redisbm 但是不同的hash参数(比如字段数)返回不同的结果。并且 set/get 并不总是较慢。
标签: redis