import redis
pool = redis.ConnectionPool(host="localhost", port=6379, db=0)
r = redis.Redis(connection_pool=pool)
# hash类型的操作,就是以一个name对应一个字典存储的
# hset hget hmset hmget
# hset(name,key,value)
# name对应的hash中设置一个键值对(不存在,则创建;否则,修改)
# name:redis的name
# key:key1对应的hash中的key
# value:value1对应的hash中的value
r.hset("dict1","hello","world")
# hget(name,key)
# 在name对应的hash中获取根据key获取value
print(r.hget("dict1","hello"))
# hmset(name,mapping)
# 在name对应的hash中批量设置键值对
# name:redis的name
# mapping:字典,如{'k1':'v1','k2','v2'}
r.hmset("dict1",{"k1":"v1","k2":"v2","k3":"v3"})
# hmget(name,keys,*args)
# 在name对应的hash中获取多个key的值
# name:redis对应的name
# keys:要获取key的集合,如:['k1','k2','k3']
# *args:要获取的key,如:k1,k2,k3
print(r.hmget("dict1","k1","k2","k3"))
# hgetall(name):获取name对应hash的所有键值
# hlen(name):获取name对应的hash中键值的个数
# hkeys(name):获取name对应的hash中所有的key的值
# hvals(name):获取name对应的hash中所有的value的值
# hexists(name,key):检查name对应的hash是否存在当前传入的key
# hdel(name,*keys):将name对应的hash中指定key的键值对删除
# 其他操作
# delete(*names)
# 根据name删除redis中的任意数据类型
r.delete("name1")
# exists(name)
# 检测redis的name是否存在,返回布尔值(True/False)
print(r.exists("name1"))
# rename(src, dst)
# 重命名,将src修改成dst
r.rename("name","name1")
# move(name, db))
# 将redis的某个值移动到指定的db下,redis默认0-15号共16个数据库
r.move("dict1",1)
# type(name)
# 获取name对应值的类型
print(r.type("name"))
# expire(name ,time)
# 为某个name设置超时时间,单位为秒
r.expire("name",100)