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. RecyclerView 缓存机制学习笔记2

    RecyclerView 初始化所有的视图后,调用 去缓存(StaggeredGridLayoutManager), 而不是初始化一次缓存一次 存储后系统又会去调用tryGetViewHolderFo ...

  2. 搜索模板elasticsearch

    搜索: like 对中文分词效率与支持都不太友好elasticsearch 实时的(效率高).分布式(可扩展)的搜索和分析引擎,基于Lucene全文搜索引擎工具包,算法基于倒排索引算法(eg:一篇文章 ...

  3. phpstorm 格式化代码

    MAC 安装phpcs.phpcbf composer global require 'squizlabs/php_codesniffer=*' Changed current directory t ...

  4. vSphere Client用户名密码保存记录

    vSphere Client在访问ESXi主机或vCenter后是默认不保存登录用户名和密码的,不过可以通过修改配置文件来保存,方便访问连接. 方法如下: 打开配置文件路径(实际安装路径):D:\Pr ...

  5. 善用Object.defineProperty巧妙找到修改某个变量的准确代码位置

    我今天的工作又遇到一个难题.前端UI右下角这个按钮被设置为"禁用(disabled)"状态. 这个按钮的可用状态由属性enabled控制.我通过调试发现,一旦下图第88行代码执行完 ...

  6. Android(java)学习笔记180:多媒体之图形的变化处理

    1. 图形的缩放 (1)布局文件activity_main.xml如下: <LinearLayout xmlns:android="http://schemas.android.com ...

  7. 导入Excel表格(二)

    1. 提取session中的数据.并进行分页操作,上传excel表格,保存到临时表格. 初始化临时表格,提交表单,判断状态是否为真,若为真,则启用 导入到数据库 的按钮:为false,让查询的url ...

  8. docker 新手入门 (web项目的部署)

    web项目的部署 1.首先我们下载centos镜像.docker pull centos 2.下载完成之后,我们首先要安装的是java环境  tomcat 和jdk 3.将下载好的软件放入到nmt目录 ...

  9. Ubuntu 16.04 LTS: apt-get update 失败处理 Aborted (core dumped)

    在Ubuntu 16.04运行sudo apt-get update出现如下错误: rogn@ubuntu:~$ sudo apt-get update Get:1 http://us.archive ...

  10. 多线程test

    import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Map; import ...