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. Linux内核设计基础(九)之进程管理和调度

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/BlueCloudMatrix/article/details/30799225 在Linux中进程用 ...

  2. mysql主从复制(windows下)

    简单搭建mysql主从服务器(双向复制),仅供学习之用. 1.下载mysql-advanced-5.6.16-winx64.zip 下载完成后解压,重命名成mysql,分别放入两台服务器(看第二点集群 ...

  3. leetcode 901. Online Stock Span

    Write a class StockSpanner which collects daily price quotes for some stock, and returns the span of ...

  4. [原创]java WEB学习笔记16:JSP指令(page,include),JSP标签(forwar,include,param)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  5. [原创]java WEB学习笔记10:GenericServlet

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  6. 326 集合 ,数据类型的补充 ,copy , 编码之间的转换

    一.数据类型补充1,对于元组:如果只有一个元素,并且没有逗号,此元素是什么数据类型,改表达式就是什么数据类型. tu = () tu1 = (,) print(tu,type(tu)) #1 < ...

  7. Luogu-4048 [JSOI2010]冷冻波

    考虑网络流,二分时间,源点向巫妖连流量为攻击次数的边,把每个巫妖向他能打的小精灵连一条流量为一的边,每个小精灵向汇点连一条边. 预处理每个小精灵能被那些巫妖打,这道题好像视线与树相切也算能打(雾. # ...

  8. EntityFramework 学习 一 Entity Lifecycle 实体生命周期

    当我们执行CRUD(Create,Read,Update,Delete)操作之前,最重要的是搞明白实体的生命周期和EntityFrameword怎么管理实体 在一个实体的生命周期里,每个实体都有一个实 ...

  9. 编码,charset,乱码,unicode,utf-8与net简单释义

    1.文件分为文本文件和二进制文件﹐不过本质都一样﹐都是些01. 2.计算机存储设备存储的0或1﹐称为计算机的一个二进制位(bit). 3.二进制文件的0和1有专门的应用程序来读﹐所以它们没有什么乱不乱 ...

  10. css 动画的例子

    1. [代码]   <!DOCTYPE HTML><html><head><meta charset="utf-8"><tit ...