redis 中 Hash哈希介绍 及常用命令 (附有示例)
目录
一、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哈希介绍 及常用命令 (附有示例)相关推荐
- redis中list类型详解及常用命令
redis中的list类型有点类似于编程语言中的数组,list类型如下图所示,实际上是一种双向链表结构,通过lpush.lpop.rpush.rpop这几个命令来控制链表中数据出入,所以list类型可 ...
- redis 介绍和常用命令
redis 介绍和常用命令 redis简介 Redis 是一款开源的,基于 BSD 许可的,高级键值 (key-value) 缓存 (cache) 和存储 (store) 系统.由于 Redis 的键 ...
- redis之Hash哈希类型以及存储原理
文章目录 1.概述 1.1Redis数据类型 中文官网 (不推荐,更新不及时) 1.2.Redis数据类型 英文官网 (推荐) 2.Hash哈希类型的相关命令 2.1.命令参考地址:http://re ...
- nvm介绍及常用命令
nvm介绍及常用命令 1.为什么使用nvm? nvm是一个管理nodejs版本的工具.在实际的开发中,有些项目的开发依赖需要低版本的nodejs运行环境,此时我们就需要使用nvm来降低nodejs版本 ...
- Redis数据库中Hash哈希的介绍,常用命令和应用场景
一.简介 Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象. 可以看成一个map容器 Redis 中每个 hash 可以存储 232 - 1 ...
- redis中hash类型介绍
在redis中,hash数据类型存储的数据与mysql数据库中存储一条记录极为相似,是一个string类型的field和value的映射表,它特别适合用于存储对象,但字段值只能是字符串,不支持其他类型 ...
- redis学习(二) redis数据结构介绍以及常用命令
redis数据结构介绍 我们已经知道redis是一个基于key-value数据存储的数据结构数据库,这里的key指的是string类型,而对应的value则可以是多样的数据结构.其中包括下面五种类型: ...
- Redis介绍及常用命令【转载】
转自:http://langgufu.iteye.com/blog/1434408 一 Redis介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key- ...
- 【Redis】Hash哈希类型基本使用
文章目录 1. 简介 2. 常用命令 3. Hash类型的数据结构 1. 简介 Redis hash 是一个键值对集合. Redis hash是一个string类型的field和value的映射表,h ...
最新文章
- 玩转Google开源C++单元测试框架Google Test系列(gtest)(总)
- AD不能复制提示目标主要名称不正确
- 全链路监控方案概述与比较
- Oracle 一些常用函数
- node mysql 跨库查询_nodejs 在mongodb在跨数据库之中如何进行关联起来查询,并且支持筛选关联表的条件进行查询...
- android让图片旋转动画,利用RotateAnimation旋转图片的问题 - 移动平台 / Android
- 缓存系统在游戏业务中的特异性
- 【mysql】知识点
- ROS | 机器人操作系统简介
- (官网)虚幻3--基础游戏快速入门
- Edge 浏览器新版来袭,Office 功能首次出现!
- OpenCL编程初探
- 内容为王 一个好的摘客
- eclipse导入web项目出现红色叉叉
- c语言的真假,C语言丨还没搞懂逻辑运算符?一篇文章教你区分“真假”!
- 有哪些在线尺子测量工具?这个工具值得试试
- 对称加密及AES加密算法
- 内部表和外部表区别和详解
- 【毕业设计】基于单片机的智能感应垃圾桶设计与实现 - 物联网 stm32 嵌入式
- 概念术语之 high dynamic range(HDR)高动态范围