python学习之-- redis模块操作 HASH
redis 操作 之 -Hash
Hash 操作:hash在内存中的存储格式
name hash
n1 ------> k1 -> v1
k2 -> v2
k3 -> v3
hset(name,key,value):name对应的hash中设置一个键值对(不存在,则创建,存在则修改)
name:redis的name
key :name对应hash中的key
value:name对应hash中的value
hsetnx(name,key,value):当name对应的hash中不存在当前key时则创建
举例:
r.hset('info','name','jack')
r.hset('info','age',22)
r.hset('info','id',22323)
print(r.hgetall('info')) # 查看info对应的所有信息,返回字典
print(r.hget('info','age')) # 查看info对应的age的值,返回字符串
print(r.hkeys('info')) # 查看info的所有键,返回列表
print(r.hvals('info')) # 查看info的所有值,返回列表
hmset(name,mapping):在name对应的hash中批量设置键值对
mapping:字典{'k1':'v1','k2':'v2'}
举例:
r.hmset('info',{'name':'jack','age':22,'id':223}) # 批量设置
print(r.hgetall('info')) # 打印所有信息
print(r.hmget('info','name','age')) # 打印对应值
hgetall(name):获取name对应hash的所有键值
hlen(name):获取name对应的hash中键值对的个数
hkeys(name):获取name对应的hash中所有的key
hvals(name):获取name对应的hash中所有的value
hexists(name,key):判断key是否存在
hdel(name,*keys):删除指定name中的keys键值对
hincrby(name,key,amount=1):对name对应的key自增
hscan(name,cursor=0,match=None,count=None):增量式迭代获取,对于数据量大的数据非常有用,hscan可以实现分片的获取数据,
并非一次性将数据获取完毕,
name:redis的name
cursor:游标(基于游标分批获取数据)
match:匹配指定key,默认None,表示所有的key
count:每次分片最少获取个数,默认None表示采用redis的默认分片个数
举例:
r.hmset('info',{'name':'jack','age':22,'id':223})
print(r.hscan('info',cursor=0,match='a*'))
结果输出:(0, {b'age': b'22'})
hscan_iter(name,match=None,count=None):利用yield封装hscan创建生成器,实现分批去redis中获取数据
match:匹配指定key,默认None表示所有key
count:每次分片最少获取个数
r.hmset('info2',{'k1':'v1','k2':'v2','k3':'v3'})
for item in r.hscan('info2',cursor=0,match='k*'):
print(item)
输出:{b'k1': b'v1', b'k2': b'v2', b'k3': b'v3'}
python学习之-- redis模块操作 HASH的更多相关文章
- python学习之-- redis模块操作 集合和有序集合
redis 模块操作之 集合set和有序集合zset Set 集合操作,不允许重复的列表sadd(name,value):name对应的集合中添加元素scard(name):获取name对应的集合中元 ...
- python学习之-- redis模块操作 LIST
redis 模块操作之 List List 操作,在内存中按照一个name对应一个List来存储. lpush(name,values):在name对应的list中添加元素,每个新的元素都添加到列表的 ...
- python学习之-- redis模块操作 string
redis 模块操作之--> String String:redis中的string在内存中按照一个key 对应一个 value来存储. 使用方法如下:set(name, value, ex=N ...
- python学习之-- redis模块管道/订阅发布
redis 模块操作剩余其他常用操作 delete(*names):删除任意的数据类型exists(name):检测redis的name是否存在keys(pattern='*'):根据模型获取redi ...
- python学习之-- redis模块基本介绍
数据缓存系统: 1:mongodb:是直接持久化,直接存储于硬盘的缓存系统 2:redis: 半持久化,存储于内存和硬盘 3:memcache:数据只能存储在内存里的缓存系统关于memcache 学习 ...
- Python学习 Part4:模块
Python学习 Part4:模块 1. 模块是将定义保存在一个文件中的方法,然后在脚本中或解释器的交互实例中使用.模块中的定义可以被导入到其他模块或者main模块. 模块就是一个包含Python定义 ...
- Python学习day18-常用模块之NumPy
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
- python学习之argparse模块
python学习之argparse模块 一.简介: argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块.argparse模块的作用是用于解析命令行 ...
- redis下操作hash对象
redis下操作hash对象 hash用于存储对象,对象的格式为键值对 命令 设置 设置单个属性 HSET key field value 设置多个属性 HMSET key field value [ ...
随机推荐
- mySQL ODBC 在windows 64位版上的驱动问题
1,问题的起源 某次编辑一个asp文件,其中访问mysql数据库的连接字符串如下: "driver={mysql odbc 3.51 driver};server=localhost;uid ...
- Quartz使用一 通过getJobDataMap传递数据
Quartz定时器使用比较广泛,介绍一点简单的使用 上代码:定义一个Job,执行具体的任务 package org.tonny.quartz; import java.text.SimpleDateF ...
- HYSBZ 1503 郁闷的出纳员 (Splay树)
题意: 作为一名出纳员,我的任务之一便是统计每位员工的工资.但是我们的老板反复无常,经常调整员工的工资.如果他心情好,就可能把每位员工的工资加上一个相同的量.反之,如果心情不好,就可能把他们的工资扣除 ...
- 洛谷 P1011 车站
题目描述 火车从始发站(称为第1站)开出,在始发站上车的人数为a,然后到达第2站,在第2站有人上.下车,但上.下车的人数相同,因此在第2站开出时(即在到达第3站之前)车上的人数保持为a人.从第3站起( ...
- Node + Express + MySQL 接口开发完整案例
https://blog.csdn.net/u013216976/article/details/85273770 https://github.com/Apache-Ra/node-express- ...
- vscode F12 不能用,原来是快捷键冲突了。
vscode F12 不能用,原来是快捷键冲突了.
- python爬虫---从零开始(三)Requests库
1,什么是Requests库 Requests是用python语言编写,基于urllib,采用Apache2 Licensed 开源协议的HTTP库. 它比urllib更加方便,可以节约我们大量的工作 ...
- WebDriverException: Message: unknown error: Chrome failed to start: crashed
the last answer WebDriverException: Message: unknown error: Chrome failed to start: crashed
- 【分享】 封装js操作textarea 方法集合(兼容很好)。
请使用下面的btn操作. 虽然你现在看来没什么用,当要用的时候又到处找资料,还不如现在收集一下. 在DOM里面操作textarea里面的字符,是比较麻烦的. 于是我有这个封装分享给大家 ...
- 01-mysql中的数据类型
mysql中的列数据类型:数值型.字符串类型.日期/时间类型3种 几种列类型描述使用了下述惯例:· M #表示最大显示宽度.最大有效显示宽度是255.· D #适用于浮点和定点类型,表示小数点后面的位 ...