Python操作Redis大全( 五 )
五、哈希 hashes
Redis 数据库hash数据类型是一个string类型的key和value的映射表 , 适用于存储对象 。 redis 中每个hash可以存储键值对多达40亿 。 Python的redis模块实现了Redis哈希(Hash)命令行操作的几乎全部命令 , 包括HDEL、HEXISTS、HGET、HGETALL、HINCRBY、HKEYS、HLEN 、HMGET 、HMSET 、HSET 、HSETNX 、HVALS 、HINCRBYFLOAT等命令 。 函数说明如下:
- HDEL:删除对应哈希(Hash)表的指定键(key)的字段 , hdel(self, name, key)
- HEXISTS:检测哈希(Hash)表对应键(key)字段是否存在 , 返回布尔逻辑 , hexists(self, name, key)
- HGET:获取哈希(Hash)指定键(key)对应的值 , hget(self, name, key)
- HGETALL:获取哈希(Hash)表的键-值对(key-value pairs),返回python字典类型数据 , hgetall(self, name)
- HINCRBY:为哈希表(Hash)指定键(key)对应的值(key)加上指定的整数数值(int , 可为负值)hincrby(self>, name, key, amount=1) , Redis 中本操作的值被限制在 64 位(bit)有符号数字 。
- HKEYS:返回哈希表(Hash)对应键(key)的数组(Python称之为列表List) , hkeys(self, name)
- HLEN: 获取哈希表(Hash)中键-值对(key-value pairs)个数 , hlen(self, name)
- HMGET:获取哈希表(Hash)中一个或多个给点字段的值 , 不存在返回nil(Redis命令行)/None(Python) , hmget(self, name, keys) , 其中keys可以为列表(list)
- HMSET:设置对个键-值对(key-value pairs)到哈希表(Hash)中 , python输入值(mapping)为字典(dictionary)类型 , hmset(self, name, mapping)
- HSET:为哈希表(Hash)赋值 , 若键(key)存在值(value)则覆盖 , 不存在则创建 , hset(self, name, key, value)
- HSETNX:为哈希表(Hash)不存值(value)的键(key)赋值 , 存在操作无效 , 对应值(value)无变化 , hsetnx(self, name, key, value)
- HVALS:返回哈希表(Hash)对应值(value)的列表 , hvals(self, name)
- HINCRBYFLOAT:为哈希表 key 中的指定字段的浮点数值加上增量 increment, hincrbyfloat(self, name, key, amount=1.0)
#!/usr/bin/python# -*- coding:utf-8 -*-# __author__ = 'Jack'pool = redis.ConnectionPool(host='127.0.0.1', port=6379)r = redis.Redis(connection_pool=pool)r.flushall # 清空Redisr.hset('n1', 'k1', 'v1') # hset(name, key, value),name对应的hash中设置一个键值对(不存在 , 则创建;否则 , 修改)print(r.hget('n1', 'k1'))r.hmset('n2', {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}) # hmset(name, mapping),在name对应的hash中批量设置键值对print(r.hmget('n2', 'k2'))print(r.hgetall('n2')) # 获取name对应hash的所有键值print(r.hlen('n2')) # 获取name对应的hash中键值对的个数print(r.hkeys('n2')) # 获取name对应的hash中所有的key的值print(r.hvals('n2')) # 获取name对应的hash中所有的value的值print(r.hexists('n2', 'k4')) # 检查name对应的hash是否存在当前传入的keyr.hdel('n2', 'k3') # 将name对应的hash中指定key的键值对删除r.hset('n3', 'k1', 1)r.hincrby('n3', 'k1', amount=1) # hincrby(name, key, amount=1),自增name对应的hash中的指定key的value的值 , 不存在则创建key=amountprint(r.hgetall('n3'))
输出结果如下:b'v1'[b'v2']{b'k1': b'v1', b'k2': b'v2', b'k3': b'v3'}3[b'k1', b'k2', b'k3'][b'v1', b'v2', b'v3']False{b'k1': b'2'}
- 微信还能这么用?让你大开眼界的微信隐藏操作
- 想自学Python来开发爬虫,需要按照哪几个阶段制定学习计划
- 未来想进入AI领域,该学习Python还是Java大数据开发
- 鸿蒙OS大一统需产业合力
- 4G速度变慢?运营商这波操作,让5G秒变“真香现场”
- 小米11操作小技巧:可开启全局120Hz
- 2021年Java和Python的应用趋势会有什么变化?
- 非计算机专业的本科生,想利用寒假学习Python,该怎么入手
- 用Python制作图片验证码,这三行代码完事儿
- 30天自制操作系统:第一天