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,谢谢
上一篇: hash数据结构练习