首页 > 数据库 >Redis之hash操作

Redis之hash操作

时间:2024-01-28 21:14:27浏览次数:22  
标签:hash name res Redis hscan print 操作 conn userinfo

1 hset(name, key, value) 设置值

conn.hset('userinfo','name','xxx')
conn.hset('userinfo','age',18)

 


2 hmset(name, mapping) 批量设置

conn.hmset('userinfo',{'name':'彭于晏','age':19})

 

 

3 hget(name,key)

print(conn.hget('userinfo','name'))

 

 

4 hmget(name, keys, *args) 批量获取

print(conn.hmget('userinfo','hobby','name','age'))
# 另一种设置方式
print(conn.hmget('userinfo',['hobby','name','age']))

 

 

5 hgetall(name) 获取全部(慎用,内存溢出)

res=conn.hgetall('userinfo2')
print(res)

 

 

6 hlen(name) 获取长度

print(conn.hlen('userinfo'))

 

 

7 hkeys(name) 

print(conn.hkeys('userinfo'))

 

 

8 hvals(name)

print(conn.hvals('userinfo'))

 

 

9 hexists(name, key)

print(conn.hexists('userinfo2','hobby1'))

 

 

10 hdel(name,*keys)

res=conn.hdel('userinfo','hobby')
print(res)

 

 

11 hincrby(name, key, amount=1) 增加

conn.hincrby('userinfo','age')

 

 

12 hincrbyfloat(name, key, amount=1.0)

conn.hincrbyfloat('userinfo2', 'age', amount=1.2)

 

 

13 hscan(name, cursor=0, match=None, count=None)

# 一点点取值 ---》hscan一般不单独用
# 造数据
for i in range(1000):
conn.hset('map_demo',i,'鸡蛋_%s'%i)

 

# 一次性取出来
res=conn.hgetall("map_demo")
print(res)

# 一点点取---》取的数量不准确(上下相差一点点),下次取值取决于上次的结果---》不单独使用
res=conn.hscan('map_demo',cursor=0,count=20)
print(res) # (数字,{数据})
print(len(res[1]))

res=conn.hscan('map_demo',cursor=320,count=10)
print(res) # (数字,{数据})

conn.hscan('map_demo')

 

 

14 hscan_iter(name, match=None, count=None)

# 取出所有数据等同于 hgetall,但是是一点点取(count的值),一点点用
# 内部是生成器
res=conn.hscan_iter('map_demo',count=10) # 这个数字并不是取10条,而是 每次取10条,把所有都取尽
print(res) # generator
for item in res:
print(item)

# 内部具体如何实现---》内部使用了hscan
res=conn.hscan_iter('map_demo',count=10)
# 内部通过调用 hscan实现 每次取10条,用完再继续取10条,直到所有数据都取完

 

 

汇总:

'''
1 hset(name, key, value)
2 hmset(name, mapping)
3 hget(name,key)
4 hmget(name, keys, *args)
5 hgetall(name)
6 hlen(name)
7 hkeys(name)
8 hvals(name)
9 hexists(name, key)
10 hdel(name,*keys)
11 hincrby(name, key, amount=1)
12 hincrbyfloat(name, key, amount=1.0)
13 hscan(name, cursor=0, match=None, count=None)
14 hscan_iter(name, match=None, count=None)
'''

 

标签:hash,name,res,Redis,hscan,print,操作,conn,userinfo
From: https://www.cnblogs.com/wellplayed/p/17993332

相关文章

  • centos7 yum redis5-7
    (1).Redis概述Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value(键值型)数据库(非关系型数据库),并提供多种语言的API。Redis是一个高性能的Key-Value数据库。它的出现很大程度补偿来Memcached这类Key-Value型存储的不足,在部分场合下可......
  • Redis字符串操作
    1set(name,value,ex=None,px=None,nx=False,xx=False)设置值conn.set('hobby','篮球')#带过期时间conn.set('age','19',ex=3)#秒#conn.set('age','19',px=3000)#毫秒#如果key存在才设置或不存在才设置#nx,如果设置为Tru......
  • 链表操作
    代码随想录移除元素。不设置虚拟头节点,分类讨论。structListNode*removeElements(structListNode*head,intval){structListNode*temp;//当头结点存在并且头结点的值等于val时while(head&&head->val==val){temp=head;//将新的头结点设置为head->next并删......
  • nodejs下载URL地址的文件后保存以及删除指定文件夹的操作
    这里下载文件用了axios去下载下载:publicasyncdownload_from(url,fileName){returnnewPromise(async(resolve,reject)=>{constdownload_dir=path.join(process.cwd(),AppConfig.config.download_file_path,this._job_id......
  • NGINX 实战操作(yarn-proxy)
    目录一、概述二、部署Hadoop环境三、部署yarn-proxyondocker1)部署docker2)部署docker-compose3)部署dnsmasq4)下载yarn-proxy5)修改配置6)开始部署7)通过subs_filter进行改进四、部署yarn-proxyonk8s一、概述NGINX代理是非常常见的,内网生成环境一般不让在本机直接访问,......
  • Windows Server 2012 R2 安装 Visual C++ Redistributable (VC_redist.x64) 失败 0x80
    PHP8需要 VisualC++RedistributableforVisualStudio2019,但怎么都装不上,有个0x80240017-未指定的错误。 看日志 Windows8.1-KB2999226-x64.msu好像有补丁安装失败了,网上找到一篇解决办法:https://blog.51cto.com/u_12701820/3032471能成功安装VC,但是PHP8无法......
  • Qt 深度解析QMap与QHash
    一、QMap深度解析1、QMap是一个以升序键顺序存储键值对的数据结构(1)QMap原型为classQMap<K,T>模板(2)、QMap中的键值对根据key进行了排序(3)、QMap中的key类型必须重载operator<(小于操作符)2、QMap使用实例一 3、QMap使用实例二4、QMap的注意事项(1)、通过key获取Value时......
  • [office] Excel中2010版使用自定义名称简化计算公式的操作技巧
    假设企业申报工资基数为员工的基本工资,用户可将“基本工资”所在单元格区域命名为“申报工资基数”,今天,小编就教大家在Excel中2010版使用自定义名称简化计算公式的操作技巧。Excel中2010版使用自定义名称简化计算公式的操作步骤选择“定义名称”选项,在“员工基本信......
  • Redis-哨兵(sentinel)
    Redis-哨兵(sentinel)说明吹哨人巡查监控后台master主机是否故障,如果故障了则根据投票数自动将某一个从库转换为新主库,继续对外服务。配置哨兵前置条件:开启三台虚拟机。架构:每台虚拟机各启动一个redis服务以及各1个redis哨兵首先配置1主2从的redis关系修改redis.conf配置文......
  • NanoFramework操作ESP32(一)_基础元器件篇(三十七)_ SD读卡器模块
    二、示例代码1、代码:元器件的针脚ESP32模块的针脚GND;供电脚-GND3v3;供电脚+3v3CS MOSI SCK MISO GND ......