我应该在Redis中使用哈希来处理特定于用户的数据吗?如果是,那该怎么办?

时间:2014-07-24 02:13:15

标签: redis

我是Redis的新手,我正在尝试确定哪种数据类型适合存储一组特定于一个用户的数据。

数据集将特定于用户1000,因此我可以调用类型

1000:MatchesMembers

然后,数据类型将包含其他用户的列表,如:

1001, photo, age, name, location, city, country
1003, photo, age, name, location, city, country
1007, photo, age, name, location, city, country
1009, photo, age, name, location, city, country

我已经读过,如果可能的话,最好使用哈希类型 - Redis set vs hash

如果哈希是最好用的,这是我用它的方式吗?

var hash = client.GetHash<string>("1000:MatchesMembers");
hash.SetValue("key", "value");

我是否必须单独设置每个值,还是可以批量设置?

最后是否可以从哈希中弹出值?每次我会收集大约10个条目,并且一旦我使用它们就想删除它们。有没有办法从哈希中弹出条目或我需要阅读和删除?不同的数据类型会更适合这种功能吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

我无法回答语法问题,因为您没有说明您正在使用哪个redis驱动程序。 所以这里是基于Redis命令的信息。

使用HMSET设置与给定用户相关的所有数据。

HMSET 1001 photo "url of the photo" age 31 name "user name" location "location name" city "city name" country "country name"

使用集合来存储用户的ID

SADD 1000:MatchesMembers 1001 1003 1007 1009

要从设置中删除用户,请使用SREM

要优化多个成员个人资料的插入,请使用pipeling。你的Redis驱动程序应该处理它。