zoukankan      html  css  js  c++  java
  • 三,redis常用的数据类型--哈希hash

    Redis的哈希是field和value之间的映射,即键值对的集合,所以特别适合用于存储对象。

    我们可以将哈希想象成map。

    一,常用的指令

        1)hset和hget;hmset和hmget

    127.0.0.1:6379> hset mh name laoli
    (integer) 1
    127.0.0.1:6379> hget mh name
    "laoli"
    127.0.0.1:6379> hset mh sex boy
    (integer) 1
    127.0.0.1:6379> hget mh sex
    "boy"
    127.0.0.1:6379> hmset student name li sex boy age 50
    OK
    127.0.0.1:6379> hmget student name sex age
    1) "li"
    2) "boy"
    3) "50"
    将数据覆盖,将上面的50替换成30

    127.0.0.1:6379> hmset student name li sex boy age 30 OK 127.0.0.1:6379> hmget student name sex age 1) "li" 2) "boy" 3) "30"

    2)hdel 删除filed

    127.0.0.1:6379> hdel student age
    (integer) 1
    127.0.0.1:6379> hmget student name sex age
    1) "li"
    2) "boy"
    3) (nil)

    3)hgetall和hkeys,hvals

          hgetall是获取哈希表中对应key中所有的字段和值。

          hkeys是获取哈希表中对应key中所有的字段。

          hvals是获取哈希表中对应key中所有的值。

    127.0.0.1:6379> hgetall student
    1) "name"
    2) "li"
    3) "sex"
    4) "boy"
    127.0.0.1:6379> hkeys student
    1) "name"
    2) "sex"

      127.0.0.1:6379> hvals student
      1) "li"
      2) "boy"

    4)hsetnx

    只有在字段 field 不存在时,设置哈希表字段的值

    127.0.0.1:6379> hgetall student
    1) "name"
    2) "li"
    3) "sex"
    4) "boy"
    127.0.0.1:6379> hsetnx student age 29
    (integer) 1
    127.0.0.1:6379> hgetall student
    1) "name"
    2) "li"
    3) "sex"
    4) "boy"
    5) "age"
    6) "29"

      127.0.0.1:6379> hsetnx student age 30
      (integer) 0

    5)hexists 查看哈希表中的key中,指定的字段是否存在

    127.0.0.1:6379> hgetall student
    1) "name"
    2) "li"
    3) "sex"
    4) "boy"
    5) "age"
    6) "30"
    127.0.0.1:6379> hexists student age
    (integer) 1
    127.0.0.1:6379> hexists student ll
    (integer) 0

    6)hlen hash的长度

    127.0.0.1:6379> hlen student
    (integer) 3
    127.0.0.1:6379> hkeys student
    1) "name"
    2) "sex"
    3) "age"

    二,应用场景

    hash可以应该用到变更数据比较多的场合,比如对象熟悉的变化比较多的场景; 

    hash存储时开销较小,修改时,可以仅仅修改其中一个filed(属性)的值,开销小

  • 相关阅读:
    hibernate 笔记二
    log4j详解及简易搭建
    hibernate 笔记一
    【工作心得】timesten应用(安装配置篇)
    【转】boost 内存池
    【转】基于Socket的UDP和TCP编程介绍
    【工作心得】timesten应用(开发篇)
    【读书笔记】UNIX进程间通信
    【读书笔记】硬链接与软链接
    【转】Linux Socket编程
  • 原文地址:https://www.cnblogs.com/invban/p/14201956.html
Copyright © 2011-2022 走看看