赞
踩
目录
HSET命令
设置hash中指定的字段(field)的值,时间复杂度为O(1),返回的是添加字段的个数。
语法: HSET key filed value [ field value ...]
HGET命令
获取hash中指定字段的值,不存在返回nil
语法:HGET key field
HEXISTS命令
判断hash当中是否存在指定的字段,返回1和0,1则是存在,0是不存在
语法:HEXISTS key field
HDEL命令
删除Hash指定的字段,返回成功删除的个数
语法:HDEL key field [field ...]
HKEYS命令
获取hash中所有的字段,遍历hash当中的字段值
语法:HKEYS key
hgetall 命令
展示field和value值的对应。
语法: HGETALL key
HSCAN 命令
渐进式遍历,pattern代表匹配的模式,count代表每次返回多少数据
语法:HSCAN key cursor [MATCH pattern] [COUNT count]
HLEN命令
获取hash的元素个数,不需要遍历
语法:HLEN key
HSETNX命令
不存在时,字段才能设置成功
语法:HSETNX key field value
hincrby命令
直接将value的值加减
语法:hincrby key 字段 数值
哈希内部编码有两种:
原因:一个普通的hash表,会浪费一定的空间,因此进行设计内部的数据结构!
小型哈希表通常使用压缩列表(ziplist)作为内部编码方式。压缩列表是一种紧凑且高效的数据结构,可以将多个键值对存储在一个连续的内存块中,每个键值对以一个或两个紧凑的条目来表示。具体特点包括:
注:用于元素个数少,value值长度短的情况
当哈希表中的键值对数量增多或者键或值的大小超出了压缩列表的限制时,Redis 会将哈希表转换为使用哈希表(Hashtable)作为内部编码方式。哈希表的特点包括:
Redis 会根据哈希表的大小和存储的键值对来自动选择使用压缩列表还是哈希表作为内部编码方式。这种自动转换策略使得 Redis 能够在不同情况下都能够高效地处理哈希表的存储和操作,同时最大限度地减少内存使用和提高性能。
或许有人会问,这种数据结构会存储什么呢?你想想难道项目,如果有一次你需要将一个类数据上传,怎么办呢?不就使用到了这种方式吗?
注:字段名不能像KEY键一样,设置过期时间!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。