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(属性)的值,开销小

  • 相关阅读:
    mysql用户的管理
    openpyxl对excel实现字母与数字之间的转换
    字体识别
    python中os模块简单用法
    python合成语音
    python中openpyxl修改excel中字体及读取字体
    观察者模式-C#实现
    工厂模式-C#改良实现
    建造者模式-C#改良实现
    996 不是福气,努力也未必成功(转)
  • 原文地址:https://www.cnblogs.com/invban/p/14201956.html
Copyright © 2011-2022 走看看