欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

redis的hash结构使用

程序员文章站 2022-07-15 14:15:59
...

我们都知道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结构很方便呢.

如果有写的不对的地方,欢迎大家指正,如果有什么疑问,可以加QQ群:340297350,谢谢

 

 

 

 

相关标签: redis hash jedis