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. 如何在JSTL中获取数组或者list对象的索引值(index)

    <c:forEach items="${productList}" var="products" varStatus="status" ...

  2. secureCRT linux shell显示中文乱码 解决方法

    引:有没有这样的经历: 1.在shell中直接查看包含中文的文件时,出现一堆火星文,不得不下载下来window看. 2.无法正常的在shell中输入中文. 3.make的时候输出一堆乱码. 以下是查阅 ...

  3. 在linux系统下Git源码系统的文件下载

    Git是一个开源的分布式版本控制系统,在linux系统中下载git中的文件使用repo的很多. 网上有很多repo下载的地址失效,目前可用的链接在这里记录一下. 没有安装git的安装一下: sudo ...

  4. 第二十四篇、socketserver源码剖析

    这里选择的是python2.7(python3和2.7的源码基本类似) #!/usr/bin/env python # -*- coding:utf-8 -*- import SocketServer ...

  5. uboot 2013.01 代码简析(3)第二阶段初始化

    u-boot第二阶段初始化内容的入口函数是_main,_main位于arch/arm/lib/crt0.S文件中: _main函数中先为调用board_init_f准备初始化环境(设置栈指针sp和并给 ...

  6. NFS指定端口,NFS缓存

    nfs服务端: #编辑/etc/nfsmount.conf,在末尾添加: #RQUOTAD_PORT=30001#LOCKD_TCPPORT=30002#LOCKD_UDPPORT=30002#MOU ...

  7. 剑指offer之 二叉树镜像

    package Problem19; /* * 问题描述: * 请完成一个函数,输入一个二叉树,该函数输出它的镜像; */ //定义二叉树的结构 class BinaryTreeNode { Bina ...

  8. Luogu-2657 [SCOI2009]windy数

    很少做数位\(dp\)的题,做道题学习一下吧. 记忆化搜索,\(f[10][10][2][2]\)分别记录当前位置,上一位数,是否有前导零和是否有大小上限. 题目要满足相邻两个数相差不小于2,如果有前 ...

  9. EntityFramework 学习 一 CRUD using Stored Procedure: 使用存储过程进行CRUD操作

    我们先创建如下3个存储过程 1.Sp_InsertStudentInfo: CREATE PROCEDURE [dbo].[sp_InsertStudentInfo] -- Add the param ...

  10. Netty使用LineBasedFrameDecoder解决TCP粘包/拆包

    TCP粘包/拆包 TCP是个”流”协议,所谓流,就是没有界限的一串数据.TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TC ...