哈希hash的操作

哈希Hash

hash表现形式,有些像pyhton中的dict,可以存储一组关联性较强的数据。

方法中 name对应字符串,key指的是hash中的key,value是hsah的value;value只能是字符串(包括bytes)、数字格式。不能嵌套hash

#1【重点】 hset(name, key=None, value=None, mapping=None)
name对应的hash中设置一个键值对(不存在,则创建;否则,更新修改)
参数:
    name,redis的name
    key,name对应的hash中的key
    value,name对应的hash中的value
    mapping, 批处理设置键值对,py38以后批量插入使用hset,启用hmset
如:
	r.hset('info', 'name', 'xliu') # info ---> {'name':'xliu'}
    r.hset('yyy',mapping={'x1':'o1', 'x2':'o2'})    

    
#2 hsetnx(name, key, value)
当name对应的hash中不存在当前key时则创建(相当于添加),并返回1;存在则不处理,返回0


#3 hmset(name, mapping)
在name对应的hash中批量设置键值对
参数:
    name,redis的name
    mapping,字典,如:{'k1':'v1', 'k2': 'v2'}
如:
    r.hmset('xx', {'k1':'v1', 'k2': 'v2'})
注意:将要被hset代替
	r.hset('yyy',mapping={'x1':'o1', 'x2':'o2'})   
    
    
    
#4【重点】 hget(name,key)
获取name这个hash中key键对应的值


#5【重点】 hmget(name, keys, *args)
在name对应的hash中获取多个key的值,列表的形式返回
参数:
    name,reids对应的name
    keys,要获取key集合,如:['k1', 'k2', 'k3']
    *args,要获取的key,如:k1,k2,k3
如:
    r.mget('yyy', ['x1', 'x2'])
    print r.hmget('yyy', 'x1', 'x2')   # [b'o1', b'o2']
    
    
#6 hgetall(name)
获取name对应hash的所有键值对,【慎用:数据量太大会撑爆内存】
如:
	print(r.hgetall('yyy'))		# {b'x1': b'o1', b'x2': b'o2'}



#7 hlen(name) 
获取name对应的hash中键值对的个数


#8 hkeys(name)
获取name对应的hash中所有的key的值
如
	print(r.hkeys('yyy'))  # [b'x1', b'x2']


#9 hvals(name)
获取name对应的hash中所有的value的值


#10 hexists(name, key)
检查name对应的hash是否存在当前传入的key,返回布尔值



#11 hdel(name, *keys)
将name对应的hash中指定key的键值对删除,支持删除多个
如
	r.hdel('info', 'name', 'age')



#12【重点】 hincrby(name, key, amount=1)
自增name对应的hash中的指定key的值,不存在则创建key=amount
参数:
    name,redis中的name
    key, hash对应的key
    amount,自增数(整数)
    
    
#13 hincrbyfloat(name, key, amount=1.0)
自增name对应的hash中的指定key的值,不存在则创建key=amount
参数:
    name,redis中的name
    key, hash对应的key
    amount,自增数(浮点数)
  

#14【重点】 hscan_iter(name, match=None, count=None)
利用yield封装hscan创建生成器,实现分批去redis中获取数据
参数:
    match,匹配指定key,默认None 表示所有的key
    count,每次分片最少获取个数,默认None表示采用Redis的默认分片个数   
如:
    for item in r.hscan_iter('xx'):
        print(item)	# 打印所有的key-value键值对
        
    for item in r.hscan_iter('xx', match='k1'):
        print(item)	# 打印k1这个键和其对应的值
posted @ 2020-05-05 20:18  the3times  阅读(357)  评论(0)    收藏  举报