redis之哈希类型

在Redis中,哈希(Hash)类型是一种将多个键值对存储在单个键中的数据结构。

哈希类型被用来表示对象,其中每个键都是对象的属性,并且每个属性都与一个值相关联。

哈希类型在Redis中通常用于存储对象的属性集合。

哈希类型和python中的字典类型很像

哈希类型常用方法

【1】hset#

# 用于设置哈希类型键中指定字段的值。
# 如果键不存在,会创建一个新的哈希类型键。
# 如果指定的字段已经存在,则会覆盖原来的值。

conn = redis.Redis(decode_responses=True)
res = conn.hset(name='user_info', key='name', value='green')
res = conn.hset(name='user_info', key='age', value='18')

# 或者可用这样写 
conn.hset(name='user_info', mapping={'weight': 120, 'height': 185})

【2】hget#

# 用于获取哈希类型键中指定字段的值。

res = conn.hget(name='user_info', key='name')
print(res) # green

【3】hmget#

# 用于批量获取
conn = redis.Redis(decode_responses=True)
res = conn.hmget(name='user_info',keys=['name','age'])
print(res) # ['green', '18']

【4】hgetall#

# 用于获取哈希类型键中所有字段和对应的值。
res = conn.hgetall(name='user_info')
print(res) # {'name': 'green', 'age': '18', 'weight': '120', 'height': '185'}

【5】hlen#

# 用于获取哈希类型键中字段的数量,即返回哈希类型键中字段-值对的数量。
res = conn.hlen(name='user_info')
print(res) # 4

【6】hkeys#

# 获取所有的键
res = conn.hkeys(name='user_info')
print(res) # ['name', 'age', 'weight', 'height']

【7】hvals#

# 获取所有的值
res = conn.hvals(name='user_info')
print(res) # ['green', '18', '120', '185']

【8】hexists#

# 检查哈希类型键中是否存在指定字段。
res1 = conn.hexists(name='user_info',key='name') # 存在
res2 = conn.hexists(name='user_info',key='hahaha') # 不存在
print(res1) # True
print(res2) # False

【9】hdel#

# 用于删除哈希类型键中的一个或多个字段。
res = conn.hdel('user_info', 'name', 'age')

【10】hincrby#

# 用于将哈希类型键中指定字段的值增加一个整数增量。

name:要增加值的哈希类型键。
key:要增加值的字段。
amount:要增加的整数增量。

res = conn.hincrby(name='user_info',key='count',amount=1)  
# 不存在count会自动生成count这个属性 初始值为0 
print(res) # 1

【11】hincrbyfloat#

# 用于将哈希类型键中指定字段的值增加一个浮点数数增量。

name:要增加值的哈希类型键。
key:要增加值的字段。
amount:要增加的整数增量。

res = conn.hincrbyfloat(name='user_info',key='count_f',amount=6.6) 
print(res) # 6.6

【12】hscan#

# 用于迭代哈希类型键中的字段-值对。
# 它可以帮助实现分批次地获取哈希类型键中的所有字段-值对。

name:要迭代的哈希类型键。
cursor:游标,用于实现迭代。
match (可选):指定要匹配的字段模式。
count (可选):指定每次迭代返回的字段-值对数量。

cursor = 0
while True:
    cursor, data = conn.hscan(name='user_info', cursor=cursor)
    print(data)
    if cursor == 0:
        break
        
# 在这个示例中,我们通过HSCAN命令迭代名为user_info的哈希类型键中的字段-值对。
# 使用循环逐批次获取数据,直到游标为0为止。

作者:Esofar

出处:https://www.cnblogs.com/Hqqqq/p/18194648

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   HuangQiaoqi  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示