Redis检查Hash中是否存在值

时间:2014-08-22 18:46:06

标签: python hash redis

当用户使用Redis Hash登录系统时,我正在使用Redis作为我的应用程序。

m = redis.StrictRedis(host='localhost', port=6379, db=0)

'''
Structure looks like this:
m.hmset(username, {'password':password, 'first_name':first_name, 'last_name':last_name, 'email_id':email_id, 'phone_no':phone_no})
'''

m.hmset(john, {'password':'abc', 'first_name':'John', 'last_name':'Doe', 'email_id':'john@gmail.com', 'phone_no':'1234567890'})

通过这种结构,我可以验证没有2个用户具有相同的用户名'但我也想验证是否有2个用户具有相同的电子邮件ID和电话号码。怎么做?我应该选择其他结构吗?我试图制作哈希哈希(因为我们可以在Java中用作嵌套的HashMaps),但我认为Redis并不支持。那么有什么方法可以做到这一点?这就是我试过的:

n = redis.StrictRedis(host='localhost', port=6379, db=0)
o = redis.StrictRedis(host='localhost', port=6379, db=0)
o.hmset('1234567890', {'password':'abc', 'first_name':'John', 'last_name':'Doe'})
n.hmset('john@gmail.com', o)

我这样做了以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/redis/client.py", line 1870, in hmset 
for pair in iteritems(mapping):
  File "/Library/Python/2.7/site-packages/redis/_compat.py", line 15, in <lambda>
    iteritems = lambda x: x.iteritems()
AttributeError: 'StrictRedis' object has no attribute 'iteritems'

0 个答案:

没有答案