Hash类型操作
Redis在内存中存储hash类型是以name对应一个字典形式存储的
hset(name,key,value)
#name对应的hash中设置一个键值对(不存在,则创建;否则,修改)
#参数:
#name:redis的name
#key:key1对应的hash中的key
#value:value1对应的hash中的value
#注:hsetx(name,key,value),当name对应的hash中不存在当前key则创建(相当于添加)
hget(name,key)
#在name对应的hash中获取根据key获取value
hmset(name,mapping)
#在name对应的hash中批量设置键值对
hmget(name,keys,*args)
#在name对应的hash中获取多个key的值
#参数:
#name:redis对应的name
#keys:要获取key的集合,如:[‘k1’,’k2’,’k3’]
#*args:要获取的key,如: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的键值对删除
举例:
#!/usr/bin/python
# -*- coding:utf-8 -*-
# @Time : 17/12/5 下午8:21
# @Author : liaochao
# @File : hash_test.py
import redis
pool = redis.ConnectionPool(host='192.168.31.118',port=6379,db=0)
r =redis.Redis(connection_pool=pool)
#hash 类型操作
#就是一个name对应一个字典
#hset hget hmset hmget
r.hset('dict1','hello','word')
print r.hget('dict1','hello')
#批量插入,一个name,对应多个kev values
r.hmset("dict1",{"k1":"v1","k2":"v2","k3":"v3"})
print(r.hmget("dict1","k1","k2","hello"))
print (r.hgetall("dict1"))
#打印所有Key
print(r.keys("dict1"))
#打印所有value值
print (r.hvals("dict1"))
#查看key值存不存在
print (r.hexists("dict1","k3"))
#删除key
r.hdel("dict1","hello")
#删除普通key
r.delete("name1")
print(r.type("name"))
#监测是否存在
print(r.exists("name"))
#换名
r.rename("name","name1")
#移动到指定库
r.move("dict1",1)
结果:
word
[‘v1’, ‘v2’, ‘word’]
{‘k3’: ‘v3’, ‘k2’: ‘v2’, ‘k1’: ‘v1’, ‘hello’: ‘word’}
[‘dict1’]
[‘v3’, ‘v2’, ‘v1’, ‘word’]
True
string
True
其他常用操作
delete(*names)
#根据name删除redis中的任意数据类型
exists(name)
#检测redis的name是否存在
keys(pattern=’*’)
#根据* ?等通配符匹配获取redis的name
expire(name ,time)
# 为某个name设置超时时间