首页 > 数据库 >redis之哈希类型

redis之哈希类型

时间:2024-05-15 20:45:34浏览次数:15  
标签:info name res redis user 哈希 类型 conn

在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为止。

标签:info,name,res,redis,user,哈希,类型,conn
From: https://www.cnblogs.com/Hqqqq/p/18194648

相关文章

  • redis之字符串
    【1】set#1SET命令用于设置给定key的值。如果key已经存储其他值,SET就覆写旧值,且无视类型。res=conn.set(name='name',value='green')print(res)#插入成功后返回True#1.1设置过期时间conn.set(name='name',value='green',ex=5)#ex=5在5秒后过期conn.s......
  • django中使用redis
    【1】通用方式########写个pool.pyimportredisPOOL=redis.ConnectionPool(max_connections=10,decode_responses=True)######在哪里用,导入用即可fromutils.poolimportPOOLimportredisclassRedisView(ViewSet):deflist(self,request):conn=red......
  • redis通用操作
    通用操作的意思就是与数据类型无关,都可以操作的方法【1】delete#删除某个键对应的值可用一次性删多个res=conn.delete('color')#删除color对应的数据【2】exists#判断某个键是否存在存在返回1不存在返回0res=conn.exists('girls')【3】keys#返回所有键或......
  • redis之list类型
    在redis中,list类型是一种有序的字符串元素集合。redis的list和python中的列表类型有一些相似之处,但也有一些不同点redis列表类型的特点有序性:列表中的元素是按照插入顺序存储的,每个元素都有一个索引位置。允许重复元素:列表中可以包含重复的元素。支持头部和尾部的操作:Redis......
  • Redis总结
    【一】redis基础【二】python连接redis【三】Redis连接池【四】redis之字符串【五】redis之哈希类型【六】redis之list类型【七】redis通用操作【八】django中使用redis......
  • Redis连接池
    【一】Redis连接池的优点​ Redis连接池的存在主要是为了优化Redis客户端和Redis服务器之间的连接管理,提升性能和稳定性。具体而言,Redis连接池具有以下几个优点:提升响应速度:由于连接池中已经存在可用的连接,客户端可以快速获取连接并执行操作,而不需要等待新的连接建立过程。这......
  • redis基础
    redis介绍Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis与其他key-value缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供l......
  • python操作redis
    redis安装:https://github.com/tporadowski/redis/releases/一python操作redis1普通链接pipinstallredisimportredisconn=redis.Redis(host="localhost",port=6379,db=0,password=None)conn.set('name','lqz')con......
  • django中使用redis
    django中使用redis方式一:通用方式pool.pyimportredisPOOL=redis.ConnectionPool(max_connections=10,decode_responses=True)在哪里用,导入用即可fromutils.poolimportPOOLimportredisclassRedisView(ViewSet):deflist(self,request):conn=......
  • C#十六进制转成byte类型
    在C#中,可以使用Convert.ToByte方法将十六进制的字符串转换成byte类型。以下是一个简单的例子:  stringhexValue="A3";//示例十六进制字符串bytebyteValue=Convert.ToByte(hexValue,16);//转换成byte如果你有一个十六进制的字符串数组或者单个十六进制......