一、介绍

  Redis hash是一个string类型的field和value的映射表,hash特别设于用于存储对象。

  Redis中每个hash可以存储232 - 1 键值对(40多亿)。

  基本命令:

  • 添加/更新:

  hset key field value  (将hash表key中的字段field的值设为value)

  hsetnv key field value  (只有在字段field不存在时,设置hash表字段的值)

  hmset key field1 value1 [field2 value2 ...]  (同时将多个fiedl-value(域-值)对设置到hash表key中)

  hsetnx key field value  (只有在字段field不存在时,设置hash表字段的值)

  

  • 查询:

  hkeys key  (获取所有hash表中的字段)

  hvals key  (获取hash表中所有的值)

  hlen key  (获取hash表中的字段数量)

  hgetall key  (获取hash表中指定key的所有字段和值)

  hget key field  (获取存储在hash表中指定字段的值)

  hmget key field1 [field2 ...]  (获取所有给定字段的值)

  • 删除:

  hdel key field [field2 ...]  (删除一个或多个hash表字段)

  • 判断:

  hexists key field  (查看hash表key中,指定的字段是否存在(1: 存在, 0: 不存在))

  • 数值:

  hincrby key field increment  (为hash表key中的指定字段的整数值上增量increment)

  hincrbyfloat key field incremnent  (为hash表key中的指定字段的浮点数值加上增量increment)

二、操作

  • 添加/更新:

  1、hset key field value  (将hash表key中的字段field的值设为value)

  

  2、hsetnv key field value  (只有在字段field不存在时,设置hash表字段的值)

  

  字段如果已存在,设置的时候失败返回0;成功返回1

  3、hmset key field1 value1 [field2 value2 ...]  (同时将多个fiedl-value(域-值)对设置到hash表key中)

  

  • 查询:

  1、hkeys key  (获取所有hash表中的字段)

  

  2、hvals key  (获取hash表中所有的值)

  

  3、hlen key  (获取hash表中的字段数量)

  

  4、hgetall key  (获取hash表中指定key的所有字段和值)

  

  5、hget key field  (获取存储在hash表中指定字段的值)

  

  6、hmget key field1 [field2 ...]  (获取所有给定字段的值)

  

  如果给定的字段不存在的话,返回(nil)

  • 删除:

  1、hdel key field [field2 ...]  (删除一个或多个hash表字段)

  

  • 判断:

  1、hexists key field  (查看hash表key中,指定的字段是否存在(1: 存在, 0: 不存在))

  

  • 数值:

  1、hincrby key field increment  (为hash表key中的指定字段的整数值上增量increment)

  

  hash2 的 age字段 值为20,接下增加10

  

  变成30

Redis学习笔记(五)——数据结构之哈希(Hash)的更多相关文章

  1. Redis学习笔记--五种数据类型的使用场景

    String 1.String 常用命令: 除了get.set.incr.decr mget等操作外,Redis还提供了下面一些操作: 获取字符串长度 往字符串append内容 设置和获取字符串的某一 ...

  2. Redis 学习笔记五 经常使用php函数

    PHPRedis的安装在这里: http://blog.csdn.net/xundh/article/details/46288277 键值操作 $redis = new Redis(); $redi ...

  3. Redis学习笔记五:独立功能之事务

    Redis 事务提供了一种将多个命令请求打包,然后一次性.按顺序地执行多个命令的机制,并且在事务执行期间,服务器不会中断,会将事务中的所以命令都执行完毕才去处理其他客户端的命令请求. 事务的实现 事务 ...

  4. StackExchange.Redis学习笔记(五) 发布和订阅

    Redis命令中的Pub/Sub Redis在 2.0之后的版本中 实现了 事件推送的  发布订阅命令 以下是Redis关于发布和订阅提供的相关命令 SUBSCRIBE channel [channe ...

  5. python学习笔记五——数据结构

    4 . python的数据结构 数据结构是用来存储数据的逻辑结构,合理使用数据结构才能编写出优秀的代码.python提供的几种内置数据结构——元组.列表.字典和序列.内置数据结构是Python语言的精 ...

  6. Redis学习笔记一:数据结构与对象

    1. String(SDS) Redis使用自定义的一种字符串结构SDS来作为字符串的表示. 127.0.0.1:6379> set name liushijie OK 在如上操作中,name( ...

  7. Redis学习笔记~目录

    回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...

  8. Redis学习笔记(二) Redis 数据类型

    Redis 支持五种数据类型:string(字符串).list(列表).hash(哈希).set(集合)和 zset(有序集合),接下来我们讲解分别讲解一下这五种类型的的使用. String(字符串) ...

  9. Redis学习笔记(3)——Redis的命令大全

    Redis是一种nosql数据库,常被称作数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted se ...

  10. Redis学习笔记(1)——Redis简介

    一.Redis是什么? Remote Dictionary Server(Redis) 是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value ...

随机推荐

  1. GitLab集成kubernetes

    创建GitLab源码项目并上传示例代码 1. 创建GitLab源码项目 本示例中创建的GitLab源码项目地址为:https://gitee.com/SunHarvey/helloworld_java ...

  2. linux学习(九)Linux知识点汇总

    一.基础概念 Q:linux是什么?  Linux是一种基于UNIX的操作系统,它基于Linux内核,常被用作服务器的操作系统. Q:UNIX和LINUX有什么区别? Unix:收费的,商用的,拥有许 ...

  3. 安装MySQL和出现的问题解决

    在Windows下安装mysql,注意自己的Windows是32位还是64位. MySQL官网下载地址:https://dev.mysql.com/downloads/mysql/ 下载完之后,解压放 ...

  4. 刷题[GKCTF2020]

    [GKCTF2020]CheckIN 解题思路 打开直接是源码: <title>Check_In</title> <?php highlight_file(__FILE_ ...

  5. 基础篇:详解锁原理,volatile+cas、synchronized的底层实现

    目录 1 锁的分类 2 synchronized底层原理 3 Object的wait和notify方法原理 4 jvm对synchronized的优化 5 CAS的底层原理 6 CAS同步操作的问题 ...

  6. 【CF1425H】Huge Boxes of Animal Toys 题解

    原题链接 题意简介: 已知分别处在 \((-\infty,-1]\) H.\((-1,0)\) .\((0,1)\) .\([1,\infty)\) 的实数的数量(下记为集合 \(A,B,C,D\) ...

  7. python-代数式括号有效性检验

    思路: 利用栈实现代数式中括号有效行的的检验: 代码: class mychain(object): #利用链表建立栈,链表为父类 length=0 def __init__(self,value=N ...

  8. Layman ThinkPHP 中 where条件 or,and 同时使用

    Eg:('a'=1 and 'b'=2) or ('c'=3 and 'd'=4) and 'e'=5 解决方法 $condition1['a'] = 1; $condition1['b'] = 2; ...

  9. 003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程

    003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程 Java程序长啥样? 首先编写一个Java程序 记事本编写程序 打开记事本 1.wi ...

  10. C++ | 继承(基类,父类,超类),(派生类,子类)

    转载:https://blog.csdn.net/Sherlock_Homles/article/details/82927515 文章参考:https://blog.csdn.net/war1111 ...