• Redis hash 哈希(感觉作为数据库使用时,是最重要的一种数据类型)


    Redis - hash 哈希

    1、hash:
    是一个键值对的结合,类似于pyton中的map,或者php数组,是一个键值对数据
    是一个string类型的field => value 的映射表。hash比较适合存储对象
    每个 hash 可以存储 232 - 1 键值对(40多亿)

    2、hash数据的存储方式:
    1)序列化处理,数据处理为json串
    缺点:修改值比较麻烦,需要每次全部读取,反序列化,更新,再序列化存储
    2)存储为多个键值对
    缺点:数据存放较多,浪费存储空间
    3)hash存储方式:

    field   value
    id        1
    name  wkk
    age     28
    

    3、hash数据常用命令:

    1)hset <key> <field> <value>
    给键名为key的hash中的field字段赋值为value
    例如: hset user_1 id 1 name wangkkk sex 男 age 28
    	
    2)hget <key> <field>
    取出键名为key的hash中的field字段的值
    eg: hget user_1 name
    
    3)hmset <key> <field1> <value1> <fields2> <value2>
    给键名为key的hash批量写入多个 field =>value
    疑问:hmset 和 hset 区别是啥,,,都可以实现批量写入多个键值对。。。
    答:旧版redis中hset只能写入单个键值对,多个键值对必须hmet,现在新版redis两个命令都可以			写入多个键值对,后续hmset被视为弃用,建议都使用hset操作
    
    4)hexists <key> <field>:
    判断键名为key的hash中field键名是否存在
    
    5)hkeys <key>
    查看键名为key的hash值中的所有field信息
    
    6)hvas <key>
    查看键名为key的hash值中的所有value信息
    
    7)hincrby <key> <field> number
    将键名为key的hash值中的field字段中的值 加 number值
    注意:number数值为负数时,就是减少操作
    
    8)hsetnx <key> <field> <value>:
    给键名为key的hash数据中添加 键值对,和hset的区别是,只有当前hash数据中field字段不存在		时才能添加,field存在时不能添加,和字符串类型中的setnx操作类似
    

    4、hash数据结构
    当hash中的field-value键值对长短端且个数少时(< 512时),使用压缩列表,存放在连续内存中
    当hash中的field-value键值对个数多时,使用hashtable,hash表中

    本文来自博客园,作者:alisleepy,转载请注明原文链接:https://www.cnblogs.com/alisleepy/p/15647510.html

  • 相关阅读:
    leetcode--Populating Next Right Pointers in Each Node II
    leetcode—Populating Next Right Pointers in Each Node
    Pascal's Triangle II
    leetcode—pascal triangle
    leetcode—triangle
    October 23rd, 2017 Week 43rd Monday
    October 22nd, 2017 Week 43rd Sunday
    October 21st 2017 Week 42nd Saturday
    October 20th 2017 Week 42nd Friday
    October 19th 2017 Week 42nd Thursday
  • 原文地址:https://www.cnblogs.com/alisleepy/p/15647510.html
Copyright © 2020-2023  润新知