当用户使用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'