- N +

【redis 基础学习】(三)redis五种数据类型之哈希(Hash)

【redis 基础学习】(三)redis五种数据类型之哈希(Hash)原标题:【redis 基础学习】(三)redis五种数据类型之哈希(Hash)

导读:

Redis基本类型哈希(hash)详细讲解redis hash是一个string类型的field和value的映射表.它的添加,删除操作都是O.hash特别适合用于存储对象。相...

文章目录 [+]

Redis基本类型哈希(hash)详细讲解

redis hash是一个string类型的field和value的映射表.它的添加,删除操作都是O.hash特别适合用于存储对象。

相较于将对象的每个字段存成单个string类型。将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取

整个对象。

省内存的原因是新建一个hash对象时开始是用zipmap(又称为small hash)来存储的。

这个zipmap其实并不是hash table,但是zipmap相比正常的hash实现可以节省不少hash本身需要的一些元数据存储开

销。

尽管zipmap的添加,删除,查找都是O(n),但是由于一般对象的field数量都不太多。

所以使用zipmap也是很快的,也就是说添加删除平均还是O(1)。

如果field或者value的大小超出一定限制后,redis会在内部自动将zipmap替换成正常的hash实现. 

这个限制可以在配置文件中指定

hash-max-zipmap-entries 64 #配置字段最多64个

hash-max-zipmap-value 512 #配置value最大为512字节

Redis基本类型哈希(hash)使用示例

redis 127.0.0.1:6379> HMSET myhash name "redis tutorial" 
description "redis basic commands for caching" likes 20 visitors 23000 
OK 
127.0.0.1:6379> HGETALL myhash
1) "field1"
2) "Hello"
3) "field2"
4) "World"
5) "name"
6) "redis tutorial"Shell

在上面的例子中,在名称为’myhash‘的哈希中设置了Redis教程的详细信息(名称,描述,喜欢,访问者)。

Redis哈希(hash)命令

下表列出了与哈希/散列相关的一些基本命令。

序号命令说明
1HDEL key field2 [field2]删除一个或多个哈希字段。
2HEXISTS key field判断是否存在散列字段。
3HGET key field获取存储在指定键的哈希字段的值。
4HGETALL key获取存储在指定键的哈希中的所有字段和值
5HINCRBY key field increment将哈希字段的整数值按给定数字增加
6HINCRBYFLOAT key field increment将哈希字段的浮点值按给定数值增加
7HKEYS key获取哈希中的所有字段
8HLEN key获取散列中的字段数量
9HMGET key field1 [field2]获取所有给定哈希字段的值
10HMSET key field1 value1 [field2 value2 ]为多个哈希字段分别设置它们的值
11HSET key field value设置散列字段的字符串值
12HSETNX key field value仅当字段不存在时,才设置散列字段的值
13HVALS key获取哈希中的所有值


本文标题:【redis 基础学习】(三)redis五种数据类型之哈希(Hash)
本文链接:http://www.kyjszj.com/wdzl/134.html
作者授权:除特别说明外,本文由 开源技术之家 原创编译并授权 开源技术之家 刊载发布。
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。

有好的文章希望我们帮助分享和推广,猛戳这里我要投稿

返回列表
上一篇:
下一篇:

发表评论中国互联网举报中心

快捷回复:

    评论列表 (暂无评论,共641人参与)参与讨论

    还没有评论,来说两句吧...