前言
redis中的Hash 在內存中類似於一個name對應一個dict來存儲
hashes常用方法
hset(name, key, value) :設置一個hash值
hget(name,key) :獲取name對應key的value
hgetall(name) :獲取name對應的所有鍵值對
import redis
r = redis.Redis()
# name(此處爲hash001)中設置一個鍵值對(不存在,則創建,否則,修改)
r.hset("hash001","age",18)
r.hset("hash001","city","wuxi")
print("打印出hash001中age對應的value:",r.hget("hash001","age")) # 結果:b'18'
print("打印出hash001中所有的鍵值對:",r.hgetall("hash001")) # 結果:{b'age': b'18', b'city': b'wuxi'}
hmset(name, mapping) :批量設置鍵值對
hmget(name, keys, *args) :獲取多個key的value
import redis
r = redis.Redis()
r.hmset("hash001",{"age":18,"city":"wuxi","sex":"male"})
print("取出hash001中key爲sex的value:",r.hget("hash001","sex")) # 結果: b'male'
print("取出hash001中key爲age和city的value:",r.hmget("hash001","age","city")) # 結果:返回的是一個列表,[b'18', b'wuxi']
hlen(name):獲取hash中對應name的所有鍵值對個數
hkeys(name):獲取hash中對應name的所有key值
hvals(name):獲取hash中對應name的所有value值
import redis
r = redis.Redis()
r.hmget("hash001",{"age":18,"city":"wuxi","sex":"male"})
print("hash001中的鍵值對個數:",r.hlen("hash001")) # 結果:3
print("hash001中所有的key:",r.hkeys("hash001")) # 結果:[b'age', b'city', b'sex']
print("hash001中所有的value:",r.hvals("hash001")) # 結果:[b'18', b'wuxi', b'male']
hexists(name, key):判斷hash中指定key是否存在,存在返回True,不存在返回False
import redis
r = redis.Redis()
r.hmget("hash001",{"age":18,"city":"wuxi","sex":"male"})
print(r.hexists("hash001","age")) # 結果:True
print(r.hexists("hash001","school")) # 結果:False
hdel(name,*keys):刪除hash中key對應的鍵值對,可刪除多個
import redis
r = redis.Redis()
r.hmget("hash001",{"age":18,"city":"wuxi","sex":"male"})
r.hdel("hash001","age")
print("刪除key爲age後key爲city和sex的value:",r.hmget("hash001","city","sex")) # 結果:[b'wuxi', b'male']