the3times

哈希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这个键和其对应的值

分类:

技术点:

相关文章: