哈希表(hash)是 Redis 中重要的数据结构,本文通过示例演示如何使用 Python 完成对哈希表的操作,各方法调用分别对应着 Redis 的一个指令:
- HSET
- HGET
- HINCRBY
- HINCRBYFLOAT
- HSTRLEN
- HVALS
- HMSET
- HMGET
- HSETNX
常规操作
# -*- coding:utf-8 -*-
# Date: 2023/2/27
# Created by: a2htray
# Description: 哈希表操作
import redis
redis_config = {
'host': 'redis-testing',
'port': 6379,
'db': 1,
}
rs = redis.Redis(**redis_config)
if __name__ == '__main__':
# HSET
# 设置哈希表的字段与值
# 返回设置成功的字段个数
print(rs.hset('person', 'name', 'a2htray', {
'height': 179,
})) # 2
# HGET
# 取哈希表中某个字段的值
print(rs.hget('person', 'name')) # b'a2htray'
# HINCRBY
# 对哈希表中某个字段值(整数)进行自增
# 返回字段的新值
rs.hset('score', 'math', 100, {'english': 100})
print(rs.hincrby('score', 'math', -40)) # 60
print(rs.hincrby('score', 'english', 20)) # 120
# HINCRBYFLOAT
# 对哈希表中的某个字段值(浮点数)进行自增
# 返回字段的新值
rs.hset('person', 'weight', 73.5)
print(rs.hincrbyfloat('person', 'weight', 0.5)) # 74.0
# HSTRLEN
# 获取哈希表中某个字段值的长度
print(rs.hstrlen('person', 'name')) # 7
# HDEL
# 删除一个或多个哈希表中的字段
# 返回删除成功的字段个数
print(rs.hdel('person', 'height', 'weight')) # 2
print(rs.hgetall('person')) # {b'name': b'a2htray'}
# HKEYS
# 返回哈希表中的字段列表
print(rs.hkeys('person')) # [b'name']
print(rs.hkeys('notExistPerson')) # []
# HEXISTS
# 判断哈希表中是否存在某个字段
print(rs.hexists('person', 'name')) # True
print(rs.hexists('person', 'notExistName')) # False
# HGETALL
# 取哈希表所有信息
print(rs.hgetall('person')) # {b'name': b'a2htray'}
# HLEN
# 取哈希表中字段的个数
print(rs.hlen('person')) # 1
# HVALS
# 返回哈希表中值列表
print(rs.hvals('person')) # [b'a2htray']
# HMSET
# 设置一个或多个哈希表的字段和值
# hmset 已作废,应使用 hset
print(rs.hmset('person', {
'height': 179,
'weight': 73.5,
}))
# HMGET
# 获取哈希表中多个值信息
print(rs.hmget('person', *['name', 'height', 'weight'])) # [b'a2htray', b'179', b'73.5']
# HSETNX
# 设置哈希表的字段和值,只有当字段不存在时才生效
print(rs.hsetnx('person', 'location', 'WuHan')) # 1
小结
简明易用。
评论