目录
介绍
命令行模式
增
删
改
查
计数
长度
过期
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 @hash
查看hash类型的key中指定的field是否存在,返回true / false, 1/0
hexists key field
可设置hash类型的单个field或一次性设置多个field
HSET key field value [field value ...]
hset csdn id 1 name wyk company CSDN
hset csdn gender male
redis6版本中与hset效果一样
只有value中不存在的field才会被创建,若field已存在则不做任何动作:
HSETNX key field value
使用hdel命令删除hash类型的value中的fields,可批量可单个删除:
HDEL key field1 [field2 ...]
和上面介绍的使用方式一样,对hash类型中相同的field进行set操作会更新该field的值:
HSET key field value [field value ...]
使用hget获取指定hash类型的field对应的值:
HGET key field
使用hget获取指定hash类型的多个field对应的值:
HMGET key field [field ...]
使用hgetall获得指定hash类型对象的全部field和对应的value值:
HGETALL key
使用hkeys获得指定hash类型对象的全部field:
HKEYS key
使用hvals获得指定hash类型对象的全部field的values值:
HVALS key
与string类型中的incrby类似,hincrby可以对hash对象的指定的field的value做递增操作,increment必须是整数(hash类型中没有hdecrby方法,当increment为负数时为递减操作),value必须是integer类型,否则会报对应的错误:
HINCRBY key field increment
#filed对应的value必须是integer类型,increment必须是整数,可以为负
与string类型中的incrbyfloat类似,hincrbyfloat可以对hash对象的指定的field的value做递增操作,increment可以是整数或浮点数(hash类型中没有hdecrbyfloat方法,当increment为负数时为递减操作),value必须是数字类型,否则会报对应的错误:
HINCRBYFLOAT key field increment
#filed对应的value必须是数字类型,increment可以是整数或浮点,可以为负
hlen返回hash类型中field的数量:
HLEN key
hstrlen返回hash类型中指定filed对应的value的字符长度:
HSTRLEN key field
我们可以看到hash类型没有hsetex hpsetex一类的方法,想对hash对象做过期策略可以使用全局函数expire,单位为秒:
expire key seconds
下面介绍如何在python客户端实现和上面一样的操作,每个函数的含义不多赘述,在上面都有很详细的介绍了,可以看到在python客户端中的方法与redis命令行中的一样。
和redis客户端中的hset不同的是python客户端中的hset只能设置一个field:
hset(self, name, key, value)
hmset(self, name, mapping)
hsetnx(self, name, key, value)
hdel(self, name, *keys)
hset(self, name, key, value)
hget(self, name, key)
hmget(self, name, keys, *args)
hgetall(self, name)
hkeys(self, name)
hvals(self, name)
hincrby(self, name, key, amount=1)
hincrbyfloat(self, name, key, amount=1.0)
hlen(self, name)
hstrlen(self, name, key)
expire(self, name, time)
#time单位为秒
希望本文对你有帮助,请点个赞鼓励一下作者吧~ 谢谢!