Redis系列(三)、数据类型之哈希Hash

目录

介绍

命令行模式

计数

长度

过期 

Python客户端

计数

长度

过期


Redis支持五种数据类型:String, Hash, List, Set, ZSet,这个系列介绍一下如何使用这些数据类型,本篇介绍使用命令行模式以及python客户端对redis进行操作,实际项目的过程中也大多是一模一样的用法。

相关内容:

Redis系列(一)、CentOS7下安装Redis6.0.3稳定版

Redis系列(二)、数据类型之字符串String 

------------------------Redis哈希类型----------------------

介绍

哈希类型是指键值对里的value本身存储的也是一个个的KV键值对,类似于python中的dict和java中的map集合。

hash_value={{field1,value1},...{fieldN,valueN}}

hkey-->hvalue

hvalue{k1:v1 ,k2:v2 ,k3:v3...}

命令行模式

进入命令行模式:

redis-cli -a password_value

redis-cli -a password_value --raw
--raw 避免中文显示乱码

 

help

使用下面的命令查看手册:

help @hash

hexists

查看hash类型的key中指定的field是否存在,返回true / false, 1/0

hexists key field

 

hset

可设置hash类型的单个field或一次性设置多个field

HSET key field value [field value ...]

hset csdn id 1 name wyk company CSDN
hset csdn gender male

hmset

redis6版本中与hset效果一样

hsetnx

只有value中不存在的field才会被创建,若field已存在则不做任何动作:

HSETNX key field value

hdel

使用hdel命令删除hash类型的value中的fields,可批量可单个删除:

HDEL key field1 [field2 ...]

 

hset

和上面介绍的使用方式一样,对hash类型中相同的field进行set操作会更新该field的值:

HSET key field value [field value ...]

hget

使用hget获取指定hash类型的field对应的值:

HGET key field

 

hmget

使用hget获取指定hash类型的多个field对应的值:

HMGET key field [field ...]

hgetall

使用hgetall获得指定hash类型对象的全部field和对应的value值:

HGETALL key

 

hkeys

使用hkeys获得指定hash类型对象的全部field:

HKEYS key

hvals

使用hvals获得指定hash类型对象的全部field的values值:

HVALS key

计数

hincrby

与string类型中的incrby类似,hincrby可以对hash对象的指定的field的value做递增操作,increment必须是整数(hash类型中没有hdecrby方法,当increment为负数时为递减操作),value必须是integer类型,否则会报对应的错误:

HINCRBY key field increment

#filed对应的value必须是integer类型,increment必须是整数,可以为负

hincrbyfloat

与string类型中的incrbyfloat类似,hincrbyfloat可以对hash对象的指定的field的value做递增操作,increment可以是整数或浮点数(hash类型中没有hdecrbyfloat方法,当increment为负数时为递减操作),value必须是数字类型,否则会报对应的错误:

HINCRBYFLOAT key field increment

#filed对应的value必须是数字类型,increment可以是整数或浮点,可以为负

长度

hlen

hlen返回hash类型中field的数量:

HLEN key

hstrlen

hstrlen返回hash类型中指定filed对应的value的字符长度:

HSTRLEN key field

过期 

expire

我们可以看到hash类型没有hsetex hpsetex一类的方法,想对hash对象做过期策略可以使用全局函数expire,单位为秒:

expire key seconds

Python客户端

下面介绍如何在python客户端实现和上面一样的操作,每个函数的含义不多赘述,在上面都有很详细的介绍了,可以看到在python客户端中的方法与redis命令行中的一样。

hset

和redis客户端中的hset不同的是python客户端中的hset只能设置一个field:

hset(self, name, key, value)

hmset

hmset(self, name, mapping)

hsetnx

hsetnx(self, name, key, value)

hdel

hdel(self, name, *keys)

hset

hset(self, name, key, value)

hget

hget(self, name, key)

hmget

hmget(self, name, keys, *args)

hgetall

hgetall(self, name)

hkeys

hkeys(self, name)

hvals

hvals(self, name)

 

计数

hincrby

hincrby(self, name, key, amount=1)

hincrbyfloat

hincrbyfloat(self, name, key, amount=1.0)

 

长度

hlen

hlen(self, name)

hstrlen

hstrlen(self, name, key)

 

过期

expire

expire(self, name, time)
#time单位为秒

 

希望本文对你有帮助,请点个赞鼓励一下作者吧~ 谢谢!

猜你喜欢

转载自blog.csdn.net/wsdc0521/article/details/106659882