目录

一、Redis中Hash介绍

二、常用命令

三、示例

hset

hget

hmset   ..

hexists

hkeys

hvals

hincrbu

hsetnx

四、redis中Hash底层数据结构


一、Redis中Hash介绍

Redis Hash是一个键值对集合

Redis hash 是一个String类型的 field 和 value 的映射表,hash特别适合用于存储对象

类似于Java里面的Map<String,Object>

用户ID为查找的key,存储的value用户对象包含姓名,年龄,生日等信息,如果用普通的key/value结构来存储

主要有以下两种存储方式

方法一:每次修改的话需要,先取出来,然后解析,修改,再放序列化放回去,非常的麻烦,所以不推荐

方法二:如果一个对象的属性过多的话,数据就会变得非常复杂,也不推荐

于是就引出了下面的方法

二、常用命令

命令 描述
hset <set> <field> <value> 给<key>集合中的 <field>键赋值<value>
hget <key1> <field> 从key1中取出指定的field对应的value
hmset <key1> <filed1> <value1> <filed3> <value2> .. 批量插入key1的filed-value对
hexists <key1> <field>  查看哈希表key中,给定的field是否存在
hkeys <key> 列出该key的所有field
hvals <key>  列出该hash集合的所有value
hincrbu <key> <field> <incerment> 为哈希表key中的域field的值加上<incerment>
hsetnx <key><field> <value> 给哈希表key添加field-value对,当且仅当域field不存在

三、示例

hset <key> <field> <value>

给<key>集合中的 <field>键赋值<value>

可以批量插入field-value对

hget <key1> <field>

从key1中取出指定的field对应的value

注意,这里的<user:100>整体是一个key,":"不是一定要存在的

hmset <key1> <filed1> <value1> <filed3> <value2> ..

批量插入key1的filed-value对

但是hset也是可以批量插入的,当时作者在学习redis的时候也是十分疑惑

后来查阅过官方文档后发现:根据Redis 4.0.0,HMSET被视为已弃用。请在新代码中使用HSET。

        在redis4.0之后,hset也是可以批量插入的,所以hmset就被弃用了

所以推荐大家使用hset

hexists <key1> <field>

查看哈希表key中,给定的field是否存在,存在则返回1,不存在返回0

这里id域存在则返回1,xxx不存在返回0

hkeys <key>

列出该key的所有field

hvals <key>

列出该hash集合的所有value

hincrbu <key> <field> <incerment>

为哈希表key中的域field的值加上<incerment>

hsetnx <key><field> <value>

给哈希表key添加field-value对,当且仅当域field不存在

id存在,所以添加失败,返回0,添加班级id成功,返回1

四、redis中Hash底层数据结构

Hash类型对应的数据结构是两种:ziplist(压缩列表),hashtable(哈希表)

当field-value长度较短且个数较少时使用ziplist,否则使用hashtable

好了,这次的文章就到这里,喜欢的同学可以点赞收藏,遇到问题,可以评论,或者留言,我一定会第一时间给到回馈,感谢观看!!

注:本文为本人学习时心得分享,有讲错或者需要改正的地方,请指正,我会虚心接受

redis 中 Hash哈希介绍 及常用命令 (附有示例)相关推荐

  1. redis中list类型详解及常用命令

    redis中的list类型有点类似于编程语言中的数组,list类型如下图所示,实际上是一种双向链表结构,通过lpush.lpop.rpush.rpop这几个命令来控制链表中数据出入,所以list类型可 ...

  2. redis 介绍和常用命令

    redis 介绍和常用命令 redis简介 Redis 是一款开源的,基于 BSD 许可的,高级键值 (key-value) 缓存 (cache) 和存储 (store) 系统.由于 Redis 的键 ...

  3. redis之Hash哈希类型以及存储原理

    文章目录 1.概述 1.1Redis数据类型 中文官网 (不推荐,更新不及时) 1.2.Redis数据类型 英文官网 (推荐) 2.Hash哈希类型的相关命令 2.1.命令参考地址:http://re ...

  4. nvm介绍及常用命令

    nvm介绍及常用命令 1.为什么使用nvm? nvm是一个管理nodejs版本的工具.在实际的开发中,有些项目的开发依赖需要低版本的nodejs运行环境,此时我们就需要使用nvm来降低nodejs版本 ...

  5. Redis数据库中Hash哈希的介绍,常用命令和应用场景

    一.简介 Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象. 可以看成一个map容器 Redis 中每个 hash 可以存储 232 - 1 ...

  6. redis中hash类型介绍

    在redis中,hash数据类型存储的数据与mysql数据库中存储一条记录极为相似,是一个string类型的field和value的映射表,它特别适合用于存储对象,但字段值只能是字符串,不支持其他类型 ...

  7. redis学习(二) redis数据结构介绍以及常用命令

    redis数据结构介绍 我们已经知道redis是一个基于key-value数据存储的数据结构数据库,这里的key指的是string类型,而对应的value则可以是多样的数据结构.其中包括下面五种类型: ...

  8. Redis介绍及常用命令【转载】

    转自:http://langgufu.iteye.com/blog/1434408 一 Redis介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key- ...

  9. 【Redis】Hash哈希类型基本使用

    文章目录 1. 简介 2. 常用命令 3. Hash类型的数据结构 1. 简介 Redis hash 是一个键值对集合. Redis hash是一个string类型的field和value的映射表,h ...

最新文章

  1. 玩转Google开源C++单元测试框架Google Test系列(gtest)(总)
  2. AD不能复制提示目标主要名称不正确
  3. 全链路监控方案概述与比较
  4. Oracle 一些常用函数
  5. node mysql 跨库查询_nodejs 在mongodb在跨数据库之中如何进行关联起来查询,并且支持筛选关联表的条件进行查询...
  6. android让图片旋转动画,利用RotateAnimation旋转图片的问题 - 移动平台 / Android
  7. 缓存系统在游戏业务中的特异性
  8. 【mysql】知识点
  9. ROS | 机器人操作系统简介
  10. (官网)虚幻3--基础游戏快速入门
  11. Edge 浏览器新版来袭,Office 功能首次出现!
  12. OpenCL编程初探
  13. 内容为王 一个好的摘客
  14. eclipse导入web项目出现红色叉叉
  15. c语言的真假,C语言丨还没搞懂逻辑运算符?一篇文章教你区分“真假”!
  16. 有哪些在线尺子测量工具?这个工具值得试试
  17. 对称加密及AES加密算法
  18. 内部表和外部表区别和详解
  19. 【毕业设计】基于单片机的智能感应垃圾桶设计与实现 - 物联网 stm32 嵌入式
  20. 概念术语之 high dynamic range(HDR)高动态范围

热门文章

  1. Unity + VS + C# 《标题栏》
  2. python 依据某几列累加求和_Python数据分析(2)-pandas versus excel
  3. Auto你的IT——AutoIt是啥?
  4. 贝叶斯公式与全概率公式的理解。
  5. 关于2013.12大数据课题的计划
  6. SLS机器学习介绍(01):时序统计建模
  7. wordpress新增一个列表页
  8. 前后端联调的一般步骤和Nginx简单配置
  9. 王者荣耀赛事数据分析
  10. 学校校园助手小程序开发