redis详解-(5)hash散列

来源:互联网 发布:阿里云企业邮箱升级 编辑:程序博客网 时间:2024/05/20 06:06

延续上一篇list,本次主要介绍hash类型

由field和关联的value组成的map键值对,field和value为字符串类型,一个hash散列最多包含2的32次方减1个键值对。

这里写图片描述

1.设置单个字段

key的field不存在的情况下执行,key不存在直接创建

hset key field value
hget key field

hsetnx key field value

这里写图片描述

2.设置多个字段

操作同样也具有原子性

hmset key field value [field value …]
hmget key field [field …]

这里写图片描述

3.返回字段个数

hlen key

这里写图片描述

4.判断字段是否存在

key或者value不存在返回0,存在返回1

hexists key field

这里写图片描述

5.返回所有的键值对

hgetall key

这里写图片描述

6.返回所有的键或值

hkeys
hvalues

这里写图片描述

7.加减法

hincrby key field increment
hincrbyfloat key field increment

这里写图片描述

8.删除指定的字段

hdel key field [field …]

这里写图片描述

每创建一个键,redis都会为这个键存储一些附加的管理信息(比如这个键的类型,这个键最后一次被访问的时间等等),所以数据库里面的键越多,redis数据库服务器在存储附加管理信息方面耗费的内存就越多,花在管理数据库键上的cpu也会越多,在字段对应的值上进行浮点数的增量计算。所以使用hash可以减少键的数量。

不适合hash的情况
使用二进制位操作命令:因为redis目前支持对字符串键进行setbit,getbit,bitop等操作,如果你想使用这些操作,那么只能使用字符串键,虽然散列也能保存二进制数据。
使用过期键功能:redis的键过期功能目前只能对键进行过期操作,而不能对散列的字段进行过期操作,因此如果你要对键值对数据使用过期功能的话,那么只能把键值对存储在字符串里面。