redis的hash结构用法

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 我们都知道redis支持5种数据类型的存储,今天主要来说一下hash散列的使用:String: 字符串Hash: 散列List: 列表Set: 集合Sorted Set: 有序集合Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。

我们都知道redis支持5种数据类型的存储,今天主要来说一下hash散列的使用:


String: 字符串

Hash: 散列

List: 列表

Set: 集合

Sorted Set: 有序集合

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


使用场景:当你需要往redis里面保存一些字段,第二次如果有新增的字段就添加进去,已经有的字段如果值发生了变化,就更新,或者需要判断某个字段是否已经存在的时候,用hash结构就再合适不过了,直接看下面的代码:


package test
import net.sf.json.JSONObject
import redis.clients.jedis.Jedis
import scala.collection.JavaConverters._
object scalaMap {
  def main(args: Array[String]): Unit = {
    val jedis = new Jedis("10.200.10.73", 6379)
    var map = scala.collection.mutable.Map[String, String]()
    map += ("name" -> "jason")
    map += ("age" -> "800")
    map += ("sex" -> "男")
    jedis.hmset("person", map.asJava)
    var map_new = scala.collection.mutable.Map[String, String]()
    map_new += ("name" -> "jason")
    map_new += ("sex" -> "女")
    map_new += ("city" -> "beijing")
    jedis.hmset("person", map_new.asJava)
    val isExist = jedis.hmget("person", "price", "name", "age", "yoo")//获取某几个field的值;返回的是一个list;
    println(isExist) //输出:[256, jason, 800, null]
    println(isExist.get(1)) //获取对应的值;输出jason;
    jedis.hdel("person","name","age") //删除某个或多个field
    val person = jedis.hgetAll("person")  //输出:{name=jason, city=beijing, age=800, sex=女}
    val json = JSONObject.fromObject(person)
    println(json)  //输出:{"sex":"女","city":"beijing"}
    jedis.hset("person","heigh","10000") //新增加field
    val add_persion = jedis.hgetAll("person")
    println(add_persion)  //输出:{heigh=10000, city=beijing, sex=女}
  }
}

Redis Hmget 命令用于返回哈希表中,一个或多个给定字段的值。


如果指定的字段不存在于哈希表,那么返回一个 null 值。


是不是发现redis的hash结构很方便呢.大家要根据自己的场景来选择具体使用redis的哪种存储结构.


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1月前
|
存储 缓存 NoSQL
Redis哈希结构在提升数据检索速度中的实践应用
本文详细介绍了 Redis 哈希结构的特点、常见使用场景以及如何在实际应用中利用哈希结构提升数据检索速度。通过合理使用 Redis 哈希结构,可以显著提高系统的性能和响应速度。在实际开发中,结合具体业务需求,灵活运用 Redis 提供的多种数据结构,构建高效的缓存和数据存储解决方案。希望本文能帮助您更好地理解和应用 Redis 哈希结构,提升数据检索速度。
59 18
|
5月前
|
存储 NoSQL Java
Redis如何处理Hash冲突?
在 Redis 中,哈希表是一种常见的数据结构,通常用于存储对象的属性,对于哈希表,最常遇到的是哈希冲突,那么,当 Redis遇到Hash冲突会如何处理?这篇文章,我们将详细介绍Redis如何处理哈希冲突,并探讨其性能和实现细节。
104 1
|
5月前
|
存储 NoSQL Redis
Redis 哈希(Hash)
10月更文挑战第16天
80 1
|
4月前
|
存储 NoSQL Redis
【赵渝强老师】Redis的存储结构
Redis 默认配置包含 16 个数据库,通过 `databases` 参数设置。每个数据库编号从 0 开始,默认连接 0 号数据库,可通过 `SELECT <dbid>` 切换。Redis 的核心存储结构包括 `dict`、`expires` 等字段,用于处理键值和过期行为。添加键时需指定数据库信息。视频讲解和代码示例详见内容。
|
5月前
|
存储 分布式计算 NoSQL
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
52 3
|
6月前
|
存储 JSON NoSQL
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
这篇文章是关于Redis基本数据结构的学习笔记,包括了String、Hash、Set、List和SortedSet的介绍和常用命令。文章解释了每种数据结构的特点和使用场景,并通过命令示例演示了如何在Redis中操作这些数据结构。此外,还提供了一些练习示例,帮助读者更好地理解和应用这些数据结构。
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
|
5月前
|
存储 NoSQL Redis
redis保存数据的结构-redisobject结构体
`redisObject`结构体是Redis内部数据组织的核心,它通过集成类型标识、引用计数和编码方式等关键信息,实现了数据的高效管理和访问。这种设计允许Redis根据数据的实际需求动态调整存储结构,既保证了内存使用的高效性,也确保了数据操作的灵活性和速度。通过对 `redisObject`的深入了解,可以更好地掌握Redis如何在内存中高效存储和操作数据,进而优化数据库的性能和资源利用。
50 0
|
6月前
|
存储 NoSQL 算法
5)深度解密 Redis 的哈希(Hash)
5)深度解密 Redis 的哈希(Hash)
47 0
|
7月前
|
存储 NoSQL 算法
Redis6入门到实战------ 三、常用五大数据类型(列表(List)、集合(Set)、哈希(Hash)、Zset(sorted set))
这是关于Redis 6入门到实战的文章,具体内容涉及Redis的五大数据类型:列表(List)、集合(Set)、哈希(Hash)、有序集合(Zset(sorted set))。文章详细介绍了这些数据类型的特点、常用命令以及它们背后的数据结构。如果您有任何关于Redis的具体问题或需要进一步的帮助,请随时告诉我。
|
8月前
|
存储 缓存 NoSQL
Redis问题之一致性Hash是如何解决哈希+取余方法中的稳定性问题的
Redis问题之一致性Hash是如何解决哈希+取余方法中的稳定性问题的
96 10