【Redis】Redis 哈希 Hash 键值对集合操作 ( 哈希 Hash 键值对集合简介 | 查询操作 | 增加操作 | 修改操作 )

这篇具有很好参考价值的文章主要介绍了【Redis】Redis 哈希 Hash 键值对集合操作 ( 哈希 Hash 键值对集合简介 | 查询操作 | 增加操作 | 修改操作 )。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。





一、哈希 Hash 键值对集合



Redis 中的 Hash 数据 是一个 键值对集合 , 类似于 Java 中的 Map 集合 ;


Hash 数据底层数据结构是 :

  • 压缩列表 ZipList : Hash 中的 键值对 长度较短时 使用 压缩列表 ;
  • 哈希表 HashTable : Hash 中的 键值对 长度较长时 使用 哈希表 ;

Redis 中存储对象的方式 :

  • 存储序列化之后的数据 : 将 对象 序列化为 json 字符串 , 然后 存储到 Redis 键值对 的 Value 值中 ;

    • 如果要修改对象中的数据 , 要 先将对象反序列化 , 然后修改对象中的值 , 最后将对象序列化并保存 ;
  • 直接存储对象字段 : 将每个对象的字段拆开 , 进行分开存储 , 非常繁琐 ;

    • 每个 Redis 的 键 都保存一个 对象字段 , 一个对象可能要消耗多个 键 ;
  • 使用 Hash 存储 ( 推荐 ) : 将 对象 的 字段 , 都以 Hash 的 键值对 形式存储起来 , 可以直接访问修改对应的对象字段 ;

    • 每个 Redis 键 保存一个对象 , 对象的属性 由 Hash 键值对 保存 ;

键值对区分 : Redis 中的键值对 一般称为 Key=Value , 在 Hash 中的键值对 一般称为 Field=Value ;





二、查询操作




1、Redis 中查询 Hash 键值对数据


执行

hget student name

命令 , 可以 获取 Redis 中 student 键 对应的 Hash 数据中的 name 键 对应的 值 ;


代码示例 :

127.0.0.1:6379> hset student name Tom
(integer) 1
127.0.0.1:6379> get student
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> hget student
(error) ERR wrong number of arguments for 'hget' command
127.0.0.1:6379> hget student name
"Tom"
127.0.0.1:6379>

redis 修改hash值,Redis,redis,Hash,压缩列表,哈希表,NoSQL

注意 : 读取该 Hash 的 name=Tom 键值对 时 , 需要使用 hget student name 命令 ;


2、查询 Hash 键是否存在


执行

hexists student name

命令 , 可以 获取 Redis 中 student 键 对应的 Hash 数据中的 name 键 是否存在 ;

  • 如果存在 , 返回 1 ;
  • 如果不存在 , 返回 0 ;

代码示例 :

127.0.0.1:6379> hexists student name
(integer) 1
127.0.0.1:6379> hexists student name1
(integer) 0
127.0.0.1:6379>

redis 修改hash值,Redis,redis,Hash,压缩列表,哈希表,NoSQL


3、查询 Hash 中所有的键 Field


执行

hkeys student

命令 , 可以 获取 Redis 中 student 键 对应的 Hash 数据中的 所有 键 Field ;


代码示例 :

127.0.0.1:6379> hkeys student
1) "name"
2) "age"
127.0.0.1:6379>

redis 修改hash值,Redis,redis,Hash,压缩列表,哈希表,NoSQL


4、查询 Hash 中所有的值


执行

hvals student

命令 , 可以 获取 Redis 中 student 键 对应的 Hash 数据中的 所有 值 ;


代码示例 :

127.0.0.1:6379>
127.0.0.1:6379> hvals student
1) "Tom"
2) "18"
127.0.0.1:6379>

redis 修改hash值,Redis,redis,Hash,压缩列表,哈希表,NoSQL





三、增加操作




1、Redis 中插入 Hash 键值对数据


执行

hset student name Tom

命令 , 可以 给 键 student 中的 Hash 数据值 添加 name=Tom 键值对 ;


代码示例 :Redis 的 student 键值 插入 name=Tom 键值对 ;

127.0.0.1:6379> hset student name Tom
(integer) 1
127.0.0.1:6379> get student
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> hget student
(error) ERR wrong number of arguments for 'hget' command
127.0.0.1:6379> hget student name
"Tom"
127.0.0.1:6379>

redis 修改hash值,Redis,redis,Hash,压缩列表,哈希表,NoSQL

注意 : 读取该 Hash 的 name=Tom 键值对 时 , 需要使用 hget student name 命令 ;


2、批量插入 Hash 键值对数据


执行

hmset student name Tom age 18

命令 , 可以 给 键 student 中的 Hash 数据值 添加 name=Tom 和 age=18 键值对 ;


代码示例 :Redis 的 student 键值 插入 name=Tom 和 age=18 键值对 ;

127.0.0.1:6379> hmset student name Tom age 18
OK
127.0.0.1:6379> hget student age
"18"
127.0.0.1:6379> hget student name
"Tom"
127.0.0.1:6379>

redis 修改hash值,Redis,redis,Hash,压缩列表,哈希表,NoSQL





四、修改操作




1、Hash 中 Field 键对应值增减值


执行

hincrby student age -5

命令 , 可以 给 键 student 中的 Hash 数据值 age=18 数据中的值 -5 操作 ;


代码示例 :

127.0.0.1:6379>
127.0.0.1:6379> hincrby student age -5
(integer) 13
127.0.0.1:6379> hvals student
1) "Tom"
2) "13"
127.0.0.1:6379>

redis 修改hash值,Redis,redis,Hash,压缩列表,哈希表,NoSQL


2、设置 Hash 中 Field 键对应值


执行

hsetnx student weight 85

命令 , 可以 在 键 student 中的 Hash 数据值 如果不存在 weight 键 , 则 添加 weight=85 键值对数据 ;


代码示例 :

127.0.0.1:6379>
127.0.0.1:6379> hsetnx student weight 85
(integer) 1
127.0.0.1:6379> hkeys student
1) "name"
2) "age"
3) "weight"
127.0.0.1:6379>

redis 修改hash值,Redis,redis,Hash,压缩列表,哈希表,NoSQL文章来源地址https://www.toymoban.com/news/detail-554305.html

到了这里,关于【Redis】Redis 哈希 Hash 键值对集合操作 ( 哈希 Hash 键值对集合简介 | 查询操作 | 增加操作 | 修改操作 )的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一图看懂 multidict 模块:类似于字典的键值对集合,键可以多次出现,资料整理+笔记(大全)

    本文由 大侠(AhcaoZhu)原创,转载请声明。 链接: https://blog.csdn.net/Ahcao2008 全文介绍系统内置 multidict 模块(类似于字典的键值对集合,键可以多次出现)、函数、类及类的方法和属性。 它通过代码抓取并经AI智能翻译和人工校对。 是一部不可多得的权威字典类工具书。它是系列集

    2024年02月04日
    浏览(78)
  • Java键值对Pair的使用方式和操作流程

    目录 一、什么是键值对 二、Java的Pair 三、Pair 的使用场景   键值对是一种常见的数据结构,它由一个唯一的键(key)和与之关联的值(value)组成 。键和值之间存在一种映射关系,通过键可以查找或访问对应的值。 在键值对中,键通常用于唯一标识和区分不同的数据项,而

    2024年02月07日
    浏览(34)
  • Python dict字典基本操作(包括添加、修改、删除键值对)

    由于字典属于可变序列,所以我们可以任意操作字典中的键值对(key-value)。Python 中,常见的字典操作有以下几种: 向现有字典中添加新的键值对。 修改现有字典中的键值对。 从现有字典中删除指定的键值对。 判断现有字典中是否存在指定的键值对。 初学者要牢记,字典

    2024年02月08日
    浏览(46)
  • redis—Hash哈希

    目录 前言 1.常见命令 1.1命令小结 1.2内部编码 2.使用场景 几乎所有的主流编程语言都提供了哈希(hash) 类型,它们的叫法可能是哈希、字典、关联数组、映射。在Redis中,哈希类型是指值本身又是一个键值对结构,形如key= \\\"key\\\", value={{ field1, value1 }, ... {fieldN, valueN }}, Redis 键值对

    2024年02月04日
    浏览(35)
  • Redis 哈希( Hash )

    【一】简介   Redis hash 是一个键值对集合。  Redis hash 是一个 string 类型的  field  和  value  的映射表, hash 特别适合用于存储对象。 类似 Java 里面的 Map String , Object   用户 ID 为查找的 key ,存储的 value 用户对象包含姓名,年龄,生日等信息,如果用普通的 key/value 结构来存

    2024年02月12日
    浏览(38)
  • Redis学习2 - 哈希(Hash)

    Hash操作 Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。 Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿) 1. Hset Hset 命令用于为哈希表中的字段赋值 。 如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。 如果字段已

    2023年04月18日
    浏览(39)
  • Redis命令---Hash(哈希)篇 (超全)

    可用版本: = 2.0.0 返回值: 如果命令执行成功,返回 OK 。 可用版本: = 2.0.0 返回值: 一个包含多个给定字段关联值的表,表值的排列顺序和指定字段的请求顺序一样。 可用版本: = 2.0.0 返回值: 如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 。 如果哈希表中域字段

    2024年02月19日
    浏览(33)
  • 【Redis】Hash 哈希内部编码方式

    哈希的内部编码有两种: ziplist(压缩列表):当哈希类型元素个数⼩于hash-max-ziplist-entries配置(默认512个)、同时所有值都⼩于hash-max-ziplist-value配置(默认64字节)时,Redis会使⽤ziplist作为哈希的内部实现,ziplist使⽤更加紧凑的结构实现多个元素的连续存储,所以在节省内

    2024年02月07日
    浏览(35)
  • Redis数据类型-Hash哈希存储类型

    小白:伟哥,java中的Map集合类型在Redis中有对应的存储吗? 伟哥:有的,我带你撸一波。 Redis的hash哈希存储类型,类似于是java中的map存储结构,适合用来存储对象,每个哈希最多可以存储4294967295(2^32-1)个字段值对,具体数量实际上也受Redis部署的虚拟机上的总内存的限制

    2024年02月12日
    浏览(32)
  • python中Dict 字典类型(键值对)

    字典也是用于存储一组或者多组数据时使用 字典是 键值对 的存储方式 name : admin 键和值之间使用 冒号分隔 键必须是字符串或者数字类型,键可以是任意类型 键名不能重复,值可以重复 比如需要记录一本树相关数据 书名,作者,价格… vard = [{‘title’:’鬼谷子’,‘author’:‘鬼

    2023年04月09日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包