美文网首页
Redis5数据类型3-Hash

Redis5数据类型3-Hash

作者: 轻轻敲醒沉睡的心灵 | 来源:发表于2022-03-17 09:59 被阅读0次

    1. Hash散列

    是指Redis中存储的value值是Hash散列类型的。而Hash也有自己的数据结构: 它是由field和关联的value组成的map键值对。field和value是字符串类型,一个hash中最多包含2^32-1键值对。


    Hash.png

    2. Hash指令

    2.1 赋值

    • 设置一个字段值
      hset key field value 插入返回1,更新返回0
    • 设置多个字段值
      hmset key field value [field value ...]
    • 当字段不存在时赋值
      hsetnx key field value
    127.0.0.1:6379> hset message m1 11111
    1
    127.0.0.1:6379> hmset message m2 22222 m3 33333 m4 44444
    OK
    127.0.0.1:6379> hsetnx message m2 222
    0
    127.0.0.1:6379> hset message m3 333
    0
    127.0.0.1:6379> hsetnx message m5 55555
    1
    127.0.0.1:6379>
    

    2.2 取值

    • 获取一个字段值
      hget key field
    • 获取多个字段值
      hmget key field [field ...]
    • 获取所有字段值
      hgetall key
    127.0.0.1:6379> hget message m1
    11111
    127.0.0.1:6379> hmget message m1 m2 m3
    11111
    22222
    333
    127.0.0.1:6379> hgetall message
    m1
    11111
    m2
    22222
    m3
    333
    m4
    44444
    m5
    55555
    127.0.0.1:6379>
    

    2.3 获取字段数量

    hlen key

    127.0.0.1:6379> hlen message
    5
    127.0.0.1:6379>
    

    2.4 获取字段名或字段值

    hkeys key
    hvals key

    127.0.0.1:6379> hkeys message
    m1
    m2
    m3
    m4
    m5
    127.0.0.1:6379> hvals message
    11111
    22222
    333
    44444
    55555
    127.0.0.1:6379>
    

    2.5 判断字段是否存在

    hexists key field

    127.0.0.1:6379> hexists message m5
    1
    127.0.0.1:6379> hexists message m6
    0
    127.0.0.1:6379>
    

    2.6 数值字段增加

    • 增加整数语法:hincrby key field increment
    • 增加小数语法:hincrbyfloat key field increment
    127.0.0.1:6379> hset message number 5
    1
    127.0.0.1:6379> hincrby message number 2
    7
    127.0.0.1:6379> hget message number
    7
    127.0.0.1:6379> hincrbyfloat message number 0.38
    7.38
    127.0.0.1:6379> hget message number
    7.38
    127.0.0.1:6379>
    

    2.7 删除字段

    hdel key field [field ...]

    127.0.0.1:6379> hgetall message
    m1
    11111
    m2
    22222
    m3
    333
    m4
    44444
    m5
    55555
    number
    7.38
    127.0.0.1:6379> hdel message number
    1
    127.0.0.1:6379> hgetall message
    m1
    11111
    m2
    22222
    m3
    333
    m4
    44444
    m5
    55555
    127.0.0.1:6379>
    

    3. Hash的使用

    因hash有key和field 2个标志,可用其进行一些统计,比如:

    • 统计个人好友:hset 我id 他id date
    • 关注商品数

    不适合hash的情况:

    • 需要位运算,用字符串,因为有bitmap操作
    • 使用过期功能,因为Redis的键过期功能目前只能对键进行过期操作,而不能对散列的字段进行过期操作

    相关文章

      网友评论

          本文标题:Redis5数据类型3-Hash

          本文链接:https://www.haomeiwen.com/subject/cyhpdrtx.html