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数据库实现在线游戏中的游戏玩家积分排行榜功能。
相关文章
|
4月前
|
消息中间件 NoSQL Unix
Redis的基本特性以及其基础命令用法
这只是冰山一角,Redis的强大功能和简洁的操作方法值得我们深入了解和掌握,是复杂数据问题解决的有力工具。所以,来一场有趣的Redis冒险吧!
152 6
|
5月前
|
存储 NoSQL Redis
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 +  无锁架构 +  EDA架构  + 异步日志 + 集群架构
|
11月前
|
存储 NoSQL Java
Redis如何处理Hash冲突?
在 Redis 中,哈希表是一种常见的数据结构,通常用于存储对象的属性,对于哈希表,最常遇到的是哈希冲突,那么,当 Redis遇到Hash冲突会如何处理?这篇文章,我们将详细介绍Redis如何处理哈希冲突,并探讨其性能和实现细节。
242 1
|
7月前
|
存储 缓存 NoSQL
Redis哈希结构在提升数据检索速度中的实践应用
本文详细介绍了 Redis 哈希结构的特点、常见使用场景以及如何在实际应用中利用哈希结构提升数据检索速度。通过合理使用 Redis 哈希结构,可以显著提高系统的性能和响应速度。在实际开发中,结合具体业务需求,灵活运用 Redis 提供的多种数据结构,构建高效的缓存和数据存储解决方案。希望本文能帮助您更好地理解和应用 Redis 哈希结构,提升数据检索速度。
174 18
|
12月前
|
存储 JSON NoSQL
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
这篇文章是关于Redis基本数据结构的学习笔记,包括了String、Hash、Set、List和SortedSet的介绍和常用命令。文章解释了每种数据结构的特点和使用场景,并通过命令示例演示了如何在Redis中操作这些数据结构。此外,还提供了一些练习示例,帮助读者更好地理解和应用这些数据结构。
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
|
11月前
|
存储 NoSQL Redis
Redis 哈希(Hash)
10月更文挑战第16天
142 1
|
11月前
|
存储 分布式计算 NoSQL
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
91 3
|
10月前
|
存储 NoSQL Redis
【赵渝强老师】Redis的存储结构
Redis 默认配置包含 16 个数据库,通过 `databases` 参数设置。每个数据库编号从 0 开始,默认连接 0 号数据库,可通过 `SELECT <dbid>` 切换。Redis 的核心存储结构包括 `dict`、`expires` 等字段,用于处理键值和过期行为。添加键时需指定数据库信息。视频讲解和代码示例详见内容。
161 0
|
12月前
|
存储 NoSQL 算法
5)深度解密 Redis 的哈希(Hash)
5)深度解密 Redis 的哈希(Hash)
167 1
|
11月前
|
存储 NoSQL Redis
redis保存数据的结构-redisobject结构体
`redisObject`结构体是Redis内部数据组织的核心,它通过集成类型标识、引用计数和编码方式等关键信息,实现了数据的高效管理和访问。这种设计允许Redis根据数据的实际需求动态调整存储结构,既保证了内存使用的高效性,也确保了数据操作的灵活性和速度。通过对 `redisObject`的深入了解,可以更好地掌握Redis如何在内存中高效存储和操作数据,进而优化数据库的性能和资源利用。
87 0