美文网首页
NO.3 Redis 数据结构之hash 字典

NO.3 Redis 数据结构之hash 字典

作者: 旋涡_宫城 | 来源:发表于2019-11-25 17:02 被阅读0次

    hash 和java的hashmap很像,无序,内部实现结构数组+链表二维结构。第一维位置碰撞时,将会使用链表将碰撞的元素串起来。

    image.png

    hash的结构可以存储对象的信息,可以将对象的每个字段单独保存起来,需要的时候可以进行部分获取。
    对比字符串一次性存储,读取对象的信息,节约了网络流量。
    使用hash还是字符串的形式存储对象信息,还是根据实际情况而定。

    127.0.0.1:6379> hset student name hd
    (integer) 1
    127.0.0.1:6379> hset student age 30
    (integer) 1
    127.0.0.1:6379> hgetall student   #key value 交替出现
    1) "name"
    2) "hd"
    3) "age"
    4) "30"
    127.0.0.1:6379> hlen student
    (integer) 2
    127.0.0.1:6379> hget student age
    "30"
    127.0.0.1:6379> hset student age 18
    (integer) 0
    127.0.0.1:6379> hget student age
    "18"
    127.0.0.1:6379> hincrby student age 2 # 如果是数字类型,可以使用自增
    (integer) 20
    127.0.0.1:6379> hget student age
    "20"
    127.0.0.1:6379> hdel student age
    (integer) 1
    127.0.0.1:6379> hget student age
    (nil)
    127.0.0.1:6379> hexists student age
    (integer) 0
    127.0.0.1:6379> hmset book name java author hd   # 同时设置多个field-value 到hash的key中
    OK
    127.0.0.1:6379> hmget book name author # 同时获取多个field的值
    1) "java"
    2) "hd"
    127.0.0.1:6379> hkeys book
    1) "name"
    2) "author"
    127.0.0.1:6379> hsetnx book name py  # 如果field不存在则设置
    (integer) 0
    127.0.0.1:6379> hmget book name
    1) "java"
    127.0.0.1:6379> hget book name
    "java"
    

    都是一些日常总结,

    如果您觉得有帮助的话,记得 评论,关注,转发,收藏,双击么么哒。


    相关文章

      网友评论

          本文标题:NO.3 Redis 数据结构之hash 字典

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