Redis的Hash类型是一个string类型的field和value的映射表,适用于存储小型结构化数据。
常用命令:
HSET key field value
:将哈希表key中的字段field的值设为value。HGET key field
:返回哈希表key中给定字段field的值。HMSET key field1 value1 [field2 value2]
:同时将多个field-value对设置到哈希表key中。HMGET key field1 [field2]
:返回哈希表key中,一个或多个给定字段的值。HGETALL key
:返回哈希表key中,所有的字段和值。HKEYS key
:获取所有哈希表中的字段。HVALS key
:获取所有哈希表中的值。HEXISTS key field
:查看哈希表key中,指定的字段是否存在。HSETNX key field value
:只有当字段field不存在时,设置哈希表字段的值。HINCRBY key field increment
:为哈希表key中的字段field的整数值加上增量increment。HDEL key field1 [field2]
:删除一个或多个哈希表字段。
示例代码(Python使用redis-py库):
import redis
# 连接Redis
r = redis.Redis(host='localhost', port=6379, db=0)
# HSET
r.hset('user:1000', 'name', 'John')
r.hset('user:1000', 'age', 30)
# HGET
name = r.hget('user:1000', 'name')
print(name.decode('utf-8')) # 输出: John
# HMSET
r.hmset('user:1000', {'name': 'Jane', 'age': 25})
# HMGET
user_info = r.hmget('user:1000', 'name', 'age')
print([x.decode('utf-8') for x in user_info]) # 输出: ['Jane', '25']
# HGETALL
all_user_info = r.hgetall('user:1000')
print({k.decode('utf-8'): v.decode('utf-8') for k, v in all_user_info.items()})
# HKEYS
fields = r.hkeys('user:1000')
print([x.decode('utf-8') for x in fields]) # 输出: ['name', 'age']
# HVALS
values = r.hvals('user:1000')
print([x.decode('utf-8') for x in values]) # 输出: ['Jane', '25']
# HEXISTS
has_name = r.hexists('user:1000', 'name')
print(has_name) # 输出: True
# HSETNX
r.hsetnx('user:1000', 'email', 'jane@example.com')
# HINCRBY
r.hincrby('user:1000', 'age', 1)
age = r.hget('user:1000', 'age')
print(age.decode('utf-8')) # 输出: 26
# HDEL
r.hdel('user:1000', 'email')
这些命令提供了操作Redis哈希表的基本方法,适用于存储和检索用户信息、配置信息等场景。