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

hset(name, key, value):创建一个name的类别,类别里创建key-value键值对,如果已经存在就修改

hgetall(name):获取name对应的hash中全部的key和value

127.0.0.1:6379> hset info name jack
(integer) 1
127.0.0.1:6379> hset info age 22
(integer) 1
127.0.0.1:6379> hgetall info
1) "name"
2) "jack"
3) "age"
4) "22"

hsetnx(name, key, value):当name对应的hash中不存在当前key时则创建成功(相当于添加)

127.0.0.1:6379> hsetnx info id 11
(integer) 1
127.0.0.1:6379> hsetnx info id 12
(integer) 0
127.0.0.1:6379> hgetall info
1) "name"
2) "jack"
3) "age"
4) "22"
5) "id"
6) "11"

hget(name,key):获取name对应的hash中key的value

127.0.0.1:6379> hgetall info
1) "name"
2) "jack"
3) "age"
4) "22"
5) "id"
6) "11"
127.0.0.1:6379> hget info name
"jack"
127.0.0.1:6379> hget info age
"22"
127.0.0.1:6379> hget info id
"11"

hmset(name, **kwags):在name对应的hash中批量设置键值对

127.0.0.1:6379> hmset language China Chinese US English
OK
127.0.0.1:6379> hgetall language
1) "China"
2) "Chinese"
3) "US"
4) "English"

hmget(name, keys):在name对应的hash中获取多个key的值

127.0.0.1:6379> hgetall info
1) "name"
2) "jack"
3) "age"
4) "22"
5) "id"
6) "11"
127.0.0.1:6379> hmget info name age id
1) "jack"
2) "22"
3) "11"

hlen(name):获取name对应的hash中键值对的个数

127.0.0.1:6379> hgetall info
1) "name"
2) "jack"
3) "age"
4) "22"
5) "id"
6) "11"
127.0.0.1:6379> hlen info
(integer) 3

hkeys(name):获取name对应的hash中所有的key的值

127.0.0.1:6379> hgetall info
1) "name"
2) "jack"
3) "age"
4) "22"
5) "id"
6) "11"
127.0.0.1:6379> hkeys info
1) "name"
2) "age"
3) "id"

hvals(name):获取name对应的hash中所有的value的值

127.0.0.1:6379> hgetall info
1) "name"
2) "jack"
3) "age"
4) "22"
5) "id"
6) "11"
127.0.0.1:6379> hvals info
1) "jack"
2) "22"
3) "11"

hdel(name,*keys):将name对应的hash中指定key的键值对删除

127.0.0.1:6379> hgetall info
1) "name"
2) "jack"
3) "age"
4) "22"
5) "id"
6) "11"
127.0.0.1:6379> hdel info id
(integer) 1
127.0.0.1:6379> hgetall info
1) "name"
2) "jack"
3) "age"
4) "22"

hexists(name, key):判断name对应的hash中是否存在这个key

127.0.0.1:6379> hgetall info
1) "name"
2) "jack"
3) "age"
4) "22"
127.0.0.1:6379> hexists info id
(integer) 0

hincrby(name, key, amount=1):自增name对应的hash中的指定key的值,不存在则创建key=amount,amount为整型

127.0.0.1:6379> hgetall info
1) "name"
2) "jack"
3) "age"
4) "22"
127.0.0.1:6379> hincrby info age 2
(integer) 24
127.0.0.1:6379> hincrby info age 1
(integer) 25
127.0.0.1:6379> hgetall info
1) "name"
2) "jack"
3) "age"
4) "25"

hincrbyfloat(name, key, amount=1.0):自增name对应的hash中的指定key的值,不存在则创建key=amount,amount为浮点型

127.0.0.1:6379> hgetall info
1) "name"
2) "jack"
3) "age"
4) "25"
127.0.0.1:6379> hincrbyfloat info age 1.2
"26.2"
127.0.0.1:6379> hincrbyfloat info age 1.3
"27.5"
127.0.0.1:6379> hgetall info
1) "name"
2) "jack"
3) "age"
4) "27.5"

hscan(name, cursor=0, match=None, count=None):获取name对应的hash中匹配的key

cursor为游标(基于游标分批取获取数据),match为匹配指定key,默认None 表示所有的key,count为每次分片最少获取个数,默认None表示采用Redis的默认分片个数

127.0.0.1:6379> hgetall info
1) "name"
2) "jack"
3) "age"
4) "27.5"
5) "name_1"
6) "john"
7) "age_1"
8) "31"
9) "name_2"
10) "jane"
11) "age_2"
12) "31"
13) "name_3"
14) "Andy"
15) "age_3"
16) "11"
17) "id"
18) "11"
19) "id_1"
20) "22"
21) "id_2"
22) "33"
23) "id_3"
24) "44"
127.0.0.1:6379> hscan info 0 match a* # 匹配以a开头的
1) "0"
2) 1) "age"
2) "27.5"
3) "age_1"
4) "31"
5) "age_2"
6) "31"
7) "age_3"
8) "11"
127.0.0.1:6379> hscan info 0 match *a* # 匹配包含a的
1) "0"
2) 1) "name"
2) "jack"
3) "age"
4) "27.5"
5) "name_1"
6) "john"
7) "age_1"
8) "31"
9) "name_2"
10) "jane"
11) "age_2"
12) "31"
13) "name_3"
14) "Andy"
15) "age_3"
16) "11"

hscan_iter(name, match=None, count=None):为迭代hscan

Python-Redis的Hash操作的更多相关文章

  1. redis的hash操作在集中式session中的应用

    在集群部署时,为了高可用性的目的,往往把session进行共享,共享分为两种:session复制和集中式管理. redis在session集中式管理中可以起到比较大的作用. 制约session集中式共 ...

  2. python操作redis之hash操作

    # __author__ = 'STEVEN' import redis,time #连接池 polls = redis.ConnectionPool(host='192.168.43.22',por ...

  3. Redis的hash操作

    user name lisi age 30 height 175 public class User { private String name; private int age; private i ...

  4. python连接redis、redis字符串操作、hash操作、列表操作、其他通用操作、管道、django中使用redis

    今日内容概要 python连接redis redis字符串操作 redis之hash操作 redis之列表操作 redis其他 通用操作,管道 django中使用redis 内容详细 1.python ...

  5. 第二百九十六节,python操作redis缓存-Hash哈希类型,可以理解为字典类型

    第二百九十六节,python操作redis缓存-Hash哈希类型,可以理解为字典类型 Hash操作,redis中Hash在内存中的存储格式如下图: hset(name, key, value)name ...

  6. Python --Redis Hash操作

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

  7. python之redis和memcache操作

    Redis 教程 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据 ...

  8. redis对hash进行的相关操作

    redis对hash类型操作的相关命令以及如何在python使用这些命令 redis对hash类型操作的命令: 命令 语法 概述 返回值 Redis Hdel 命令 hdel key field [f ...

  9. python redis操作数据库方法

    Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorte ...

  10. python对redis的常用操作 上 (对列表、字符串、散列结构操作)

    这里的一切讨论均基于python的redis-py库. 安装使用: pip install redis 然后去获取一个redis客户端: redis_conn = redis.Redis(host=R ...

随机推荐

  1. windows下php升级到7.2

    1: 官网下载:https://windows.php.net/download#php-7.2

  2. 【模式识别】CART和GML AdaBoost MATLAB TOOLBOX

    GML AdaBoost Matlab Toolbox是一款很优秀的AdaBoost工具箱,内部实现了Real AdaBoost, Gentle AdaBoost和Modest AdaBoost三种方 ...

  3. java使用poi读写Excel

    package com.demo.excel; import com.demo.pojo.Student; import org.apache.poi.hssf.usermodel.HSSFCell; ...

  4. Nodejs课堂笔记-第四课 Dynamodb为何物

    本文由Vikings(http://www.cnblogs.com/vikings-blog/) 原创,转载请标明.谢谢! 我喜欢带着目标来学习新知识.因此学习nodejs过程中,不喜欢只看枯燥的语法 ...

  5. eclipse安装Activiti Designer插件(转载:http://blog.csdn.net/qq_33547950/article/details/54926435)

    为了完成毕业设计,需要学习Activiti.万事开头难,果然刚开始就遇到了问题.<Activiti实战>和视频教程里提供的安装Activiti Designer插件方法(即下文方法一)不能 ...

  6. vim 正则表达式查找ip

    特别说明: \v \v 表示 very magic 这种模式下很多字符默认就表示一些特殊意义,而不用加 \ 如 : < 单词开头 > 单词结尾 ( 组开始 ) 组结束 { 次数开始 } 次 ...

  7. 【leetcode刷题笔记】Permutation Sequence

    The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and labeling all of the p ...

  8. EntityFramework 学习 一 Lazy Loading

    延迟加载:延迟加载相关的数据 using (var ctx = new SchoolDBEntities()) { //Loading students only IList<Student&g ...

  9. SparkRDD内核

    Spark内核 RDD是基础,是spark中一个基础的抽象,是不可变的,比如我们加载进的数据RDD,如果想更改其中的内容是不允许的:分区的集合,可以并行来计算:RDD类中包含了很多基础的操作,例如ma ...

  10. hdu 3308 线段树 区间合并+单点更新+区间查询

    LCIS Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...