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 [ ...
随机推荐
- mac及windows下安装ss实现***
官网下载shadowsock(mac/windows都是下面地址,页面会根据当前系统自动判断所下载的包) https://sourceforge.net/projects/shadowsocksgui ...
- git设置log的别名 for hist
hist -- alias for 'log --color --graph --date=short --pretty=format:'%Cred%h%Creset -%C(yellow)%d%C ...
- 关于bin和obj文件夹。debug 和release的区别(转)
关于bin和obj文件夹. 楼主hcaihao(影子男孩)2002-05-29 20:04:24 在 .NET技术 / C# 提问 VS.Net会生成bin和obj文件夹以及它们下面的Debug和Re ...
- LINUX 安装tsung 对OPENFIRE 进行压力测试
参考资料: http://www.centoscn.com/image-text/install/2014/0818/3503.html http://my.oschina.net/jieluck ...
- 洛谷 P3038 [USACO11DEC]牧草种植Grass Planting
题目描述 Farmer John has N barren pastures (2 <= N <= 100,000) connected by N-1 bidirectional road ...
- http响应头状态描述
状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:1xx:指示信息--表示请求已接收,继续处理2xx:成功--表示请求已被成功接收.理解.接受3xx:重定向--要完成请求必须进行更 ...
- Python3基础教程(二十)—— flask介绍
基本概念 什么是Flask? Flask 是一个 web 框架.也就是说 Flask 为你提供工具,库和技术来允许你构建一个 web 应用程序.这个 web 应用程序可以是一些 web 页面.博客.w ...
- FastDFS和集中存储方式对比
指标 FastDFS NFS 集中存储设备如NetApp.NAS 线性扩容性 高 差 差 文件高并发访问性能 高 差 一般 文件访问方式 专有API POSIX 支持POSIX 硬件成 ...
- No-7.系统信息相关命令
系统信息相关命令 本节内容主要是为了方便通过远程终端维护服务器时,查看服务器上当前 系统日期和时间 / 磁盘空间占用情况 / 程序执行情况 本小结学习的终端命令基本都是查询命令,通过这些命令对系统资源 ...
- 下载GitHub上的dnSpy源码
一.方法 下载GitHub上项目的方法,目前我知道的有四种: 1.用svn软件checkout下载 2.安装git,然后git命令下载 3.直接下载项目压缩包 4.安装GitHub的客户端,然后下载项 ...