前言
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']