hash表现形式上有些像pyhton中的dict,可以存储一组关联性较强的数据 , redis中Hash在内存中的存储格式如下图:

  • hset(name, key, value)
  • # name对应的hash中设置一个键值对(不存在,则创建;否则,修改)
  • # 参数:
    # name,redis的name
    # key,name对应的hash中的key
    # value,name对应的hash中的value # 注:
    # hsetnx(name, key, value),当name对应的hash中不存在当前key时则创建(相当于添加)
  • hmset(name, mapping)
  • # 在name对应的hash中批量设置键值对
  • # 参数:
    # name,redis的name
    # mapping,字典,如:{'k1':'v1', 'k2': 'v2'} # 如:
    # r.hmset('xx', {'k1':'v1', 'k2': 'v2'})
  • hget(name,key)
  • # 在name对应的hash中获取根据key获取value
  • # 在name对应的hash中获取多个key的值
  • # 参数:
    # name,reids对应的name
    # keys,要获取key集合,如:['k1', 'k2', 'k3']
    # *args,要获取的key,如:k1,k2,k3 # 如:
    # r.mget('xx', ['k1', 'k2'])
    # 或
    # print r.hmget('xx', 'k1', 'k2')
  • hgetall(name)
  • # 获取name对应hash的所有键值
  • hlen(name)
  • # 获取name对应的hash中键值对的个数
  • hkeys(name)
  • # 获取name对应的hash中所有的key的值
  • hvals(name)
  • # 获取name对应的hash中所有的value的值
  • hexists(name, key)
  • # 检查name对应的hash是否存在当前传入的key
  • hdel(name,*keys)
  • # 将name对应的hash中指定key的键值对删除
  • hincrby(name, key, amount=1)
  • # 自增name对应的hash中的指定key的值,不存在则创建key=amount
  • # 参数:
    # name,redis中的name
    # key, hash对应的key
    # amount,自增数(整数)
  • hincrbyfloat(name, key, amount=1.0)
  • # 自增name对应的hash中的指定key的值,不存在则创建key=amount
  • # 参数:
    # name,redis中的name
    # key, hash对应的key
    # amount,自增数(浮点数) # 自增name对应的hash中的指定key的值,不存在则创建key=amount
  • hscan(name, cursor=0, match=None, count=None)
  • # 增量式迭代获取,对于数据大的数据非常有用,hscan可以实现分片的获取数据,并非一次性将数据全部获取完,从而放置内存被撑爆
  • # 参数:
    # name,redis的name
    # cursor,游标(基于游标分批取获取数据)
    # match,匹配指定key,默认None 表示所有的key
    # count,每次分片最少获取个数,默认None表示采用Redis的默认分片个数 # 如:
    # 第一次:cursor1, data1 = r.hscan('xx', cursor=, match=None, count=None)
    # 第二次:cursor2, data1 = r.hscan('xx', cursor=cursor1, match=None, count=None)
    # ...
    # 直到返回值cursor的值为0时,表示数据已经通过分片获取完毕
  • hscan_iter(name, match=None, count=None)
  • # 利用yield封装hscan创建生成器,实现分批去redis中获取数据
  • # 参数:
    # match,匹配指定key,默认None 表示所有的key
    # count,每次分片最少获取个数,默认None表示采用Redis的默认分片个数 # 如:
    # for item in r.hscan_iter('xx'):
    # print item

Python Redis hash的更多相关文章

  1. Python --Redis Hash操作

    一.Redis Hash操作 Redis 数据库hash数据类型是一个string类型的key和value的映射表,适用于存储对象.Redis 中每个 hash 可以存储 232 - 1 键值对(40 ...

  2. python处理json和redis hash的坑

    1.使用MySQLdb读取出来的数据是unicode字符串,如果要写入redis的hash中会变成 "{u'eth0_outFlow': 2.5, u'eth1_inFlow': 3.44} ...

  3. docker部署项目: centos+python+redis+mysql+uwsgi+nginx

    一.Centos7安装docker 1.1 环境配置 先测试是否下载了docker:查看镜像:docker images没有下载,就依次执行以下环境的安装 ①curl http://mirrors.a ...

  4. redis学习(二) Redis Hash

    Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象. Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿). redis ...

  5. redis hash map

    redis hash的使用详见文章:http://www.miaoyueyue.com/archives/235.html hash操作命令如下: hset(key, field, value):向名 ...

  6. python+redis测试环境搭建

    针对windows操作系统. redis安装: 微软操作系统下,需下载github下面的开源项目,redis网站地址可以找到,直接解压即可. cmd到指定目录,输入下方命令,启动redis服务. re ...

  7. ***Redis hash是一个string类型的field和value的映射表.它的添加、删除操作都是O(1)(平均)。hash特别适合用于存储对象

    http://redis.readthedocs.org/en/latest/hash/hset.html HSET HSET key field value   (存一个对象的时候key存) 将哈希 ...

  8. Redis hash数据类型操作

    Redis hash是一个string类型的field和value的映射表.一个key可对应多个field,一个field对应一个value.将一个对象存储 为hash类型,较于每个字段都存储成str ...

  9. Python 文件Hash(MD5,SHA1)

    import hashlib import os,sys   def CalcSha1(filepath):     with open(filepath,'rb') as f:         sh ...

随机推荐

  1. kylin 使用RESTful API 请求

    目前根据Kylin的官方文档介绍,Kylin的认证是basic authentication,加密算法是Base64,在POST的header进行用户认证我使用的用户和密码是(格式:username: ...

  2. proxy_set_header Host 所引发的凶案

    背景介绍:新搭建了一套测试环境.slb为2.2.2.2,由于应用的特殊性,需要走 test.aaa.com.cn 域名,而该域名在老的测试服务器1.1.1.1有两个不能迁移的服务也在使用,故想出对策, ...

  3. javascript--面试题

    (1)javaScript怎么清空数组? 如 var arrayList = ['a','b','c','d','e','f']; 怎么清空 arrayList 方法1:直接改变arrayList所指 ...

  4. 二、JavaScript基础(1)

    1.JavaScript 基于对象和事件驱动的脚步语言,主要应用在客户端 特点:交互性(信息的动态交互).安全性(不可直接访问本地硬盘).跨平台性(只要可以解析js的浏览器 都可以执行,与平台无关) ...

  5. PHP(控制语句,随机数,循环语法)

     1.随机数:Math.random():0到1 不包括1 永远取不到2.控制语句if(){} for循环  语法 运行步骤(过程,原理)   1.初始化 2.判断条件 3.变量改变  index:下 ...

  6. plsvo

    1 图像对齐 std::for_each(ref_frame->seg_fts_.begin(), ref_frame->seg_fts_.end(), [&](plsvo::Fe ...

  7. java Int 和 String 之间的转换

    String 转换成 int Integer.parseInt(formParams.get("id")) int 转换成 string Integer.toString(id);

  8. ZOJ 4063 - Tournament - [递归][2018 ACM-ICPC Asia Qingdao Regional Problem F]

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4063 Input Output Sample Input 2 3 ...

  9. 洛谷试炼场 - 关卡2-1 - 简单的模拟 - (Done)

    最近这段时间感冒外加一些乱七八糟的事情,导致脑子严重僵化……只好刷刷基础(水)题巩固巩固基础(混混题数). 目录 P1003 铺地毯 P1067 多项式输出 P1540 机器翻译 P1056 排座椅 ...

  10. Xcode工程编译错误之iOS开发之Xcode9报错 Compiling IB documents for earlier than iOS7 is no longer supported.

    概要: 在我们升级到Xcode9时,最低的编译版本为iOS8,但是在使用一些SDK的时候就会报出Compiling IB documents for earlier than iOS7 is no l ...