如何在redis中使用hash来存储这些数据

时间:2012-10-31 14:44:28

标签: database nosql redis

我想存储一个与此类似的结构。 这个想法是可以提取所有具有相同id的描述,我没有在reddis中看到很多例子,我认为文档是非常基本的。有人可以告诉我吗?

user:id:12:description:"nice"
user:id:12:description:"bad"
user:id:15:description:"nothing_especial"
...

我知道这可以通过hset实现,我尝试了类似的东西:

hset user id 12
hset user description "nice"
...

但问题是,当我尝试不同时间插入相同的密钥时,HSET覆盖内容值,最后我有相同的但具有不同的值

在文档中,我看到了一个示例,但是使用了Set,就像这样(我不明白为什么他们使用一个简单的集合......):

$ redis-cli set news:1:title "Redis is simple"
OK
$ redis-cli set news:1:url "http://code.google.com/p/redis"
OK
$ redis-cli lpush submitted.news 1

1 个答案:

答案 0 :(得分:1)

我做了这个,起初我考虑过这个,但它有限,因为我不能为每个用户提供更多的描述:

hset user id:1:deal "yeaaaaaaaah"
hset user id:1:description "sometifjjapodsifj"


hget user id:1:deal
    >yeaaaaaaaah
hget user id:1:description
    >sometifjjapodsifj

最后解决方案是:

hset user1 description1 "asdoifjasdpofjaspdo"
hset user1 description2 "aosdifj"
hset user2 description1 "asdoijfaodsifj"
hset user2 description2 "asdoifjaposdifjaposdifjasdf"

hgetall user2
    >description1=asdoijfaodsifj
    >description2=asdoifjaposdifjaposdifjasdf