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的更多相关文章

  1. python学习之-- redis模块操作 集合和有序集合

    redis 模块操作之 集合set和有序集合zset Set 集合操作,不允许重复的列表sadd(name,value):name对应的集合中添加元素scard(name):获取name对应的集合中元 ...

  2. python学习之-- redis模块操作 LIST

    redis 模块操作之 List List 操作,在内存中按照一个name对应一个List来存储. lpush(name,values):在name对应的list中添加元素,每个新的元素都添加到列表的 ...

  3. python学习之-- redis模块操作 string

    redis 模块操作之--> String String:redis中的string在内存中按照一个key 对应一个 value来存储. 使用方法如下:set(name, value, ex=N ...

  4. python学习之-- redis模块管道/订阅发布

    redis 模块操作剩余其他常用操作 delete(*names):删除任意的数据类型exists(name):检测redis的name是否存在keys(pattern='*'):根据模型获取redi ...

  5. python学习之-- redis模块基本介绍

    数据缓存系统: 1:mongodb:是直接持久化,直接存储于硬盘的缓存系统 2:redis: 半持久化,存储于内存和硬盘 3:memcache:数据只能存储在内存里的缓存系统关于memcache 学习 ...

  6. Python学习 Part4:模块

    Python学习 Part4:模块 1. 模块是将定义保存在一个文件中的方法,然后在脚本中或解释器的交互实例中使用.模块中的定义可以被导入到其他模块或者main模块. 模块就是一个包含Python定义 ...

  7. Python学习day18-常用模块之NumPy

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  8. python学习之argparse模块

    python学习之argparse模块 一.简介: argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块.argparse模块的作用是用于解析命令行 ...

  9. redis下操作hash对象

    redis下操作hash对象 hash用于存储对象,对象的格式为键值对 命令 设置 设置单个属性 HSET key field value 设置多个属性 HMSET key field value [ ...

随机推荐

  1. android动画之通过子线程来实现动画

    android动画之通过子线程来实现动画 使用android动画机制,往往是相对于原始位置来进行参照. 这里通过子线程修改物体位置实现动画. 布局文件: <RelativeLayout xmln ...

  2. Javaweb学习笔记2—Tomcat和http协议

      今天来讲javaweb的第二个阶段学习. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下 ...

  3. window Chrome 下允许跨域访问服务端接口设置

    关闭chrome,使用cmd命令进入chrome安装目录cd C:\Program Files (x86)\Google\Chrome\Application 然后使用命令打开chromechrome ...

  4. DedeCMS文章标题长度最全修改方法

    有时候DedeCMS首页或者其他页面不能全部展示文章标题,造成读者阅读体验差.一般来说标题精简.概括性强.有本文关键词就是一个好标题.写软文不比写“作文”,也不是论坛的标题党,软文是用来做排名的,主要 ...

  5. ios 之sqllite

    iOS sqlite数据库操作.步骤是: 先加入sqlite开发库libsqlite3.dylib, 新建或打开数据库, 创建数据表, 插入数据, 查询数据并打印 1.新建项目sqliteDemo,添 ...

  6. 5.1 qbxt 一测 T2

    求和[问题描述] 组合数 C(n,m)是从 n 个物品中取 m 个的方案数. C(n,m)=(n!)/(m!(n-m)!) 斐波那契数列 F 满足,F[0]=F[1]=1,n≥2 时 F[n]=F[n ...

  7. bzoj3336 Uva10572 Black and White

    题目描述: 数据范围:2<=n,m<=8 题解: 很明显需要状压.但是怎么压不知道,压什么不知道. 然后从条件下手. 条件1要求黑色在一起白色在一起,记录轮廓线很容易做到. 条件2要求不能 ...

  8. 28. TRIGGERS ,29. USER_PRIVILEGES,30. VIEWS

    28. TRIGGERS TRIGGERS表提供有关触发器的信息.要查看有关表的触发器的信息,您必须具有该表的TRIGGER权限. TRIGGERS表有以下列: TRIGGER_CATALOG :触发 ...

  9. viva correction statements

    * List of amendments| No. | Location     | Amendments                                                ...

  10. 痛苦的版本对齐(3) cygwin下的路径引用(sed解决篇)

    上次问题(见http://www.cnblogs.com/yvivid/p/3546649.html),.depend信息路径错误的问题. 主要尝试了,在(虚拟机下构建)linux下编译,确实没有问题 ...