为了账号安全,请及时绑定邮箱和手机立即绑定

(Redis基础教程之七)如何使用Redis中的Hashes

标签:
Python

介绍

Redis是一个开源的内存中键值数据存储。Redis Hashes是一种数据类型,表示字符串字段和字符串值之间的映射。Hashes可以容纳许多字段-值对,并且设计为不占用太多空间,因此使其非常适合表示数据对象。例如,Hashes可能代表一个客户,以及包括像场nameaddressemail,或customer_id

本教程将介绍如何在Redis中管理Hashes,从创建Hashes到检索和删除Hashes中保存的数据。

如何使用本指南

本指南以备有完整示例的备忘单形式编写。我们鼓励您跳至与您要完成的任务相关的任何部分。

本指南中显示的命令已在运行Redis版本4.0.9的Ubuntu 18.04服务器上进行了测试。要设置类似的环境,您可以按照我们的指南如何在Ubuntu 18.04上安装和保护Redis的步骤1进行操作。我们将通过使用Redis命令行界面运行它们来演示这些命令的行为。请注意,如果您使用其他Redis界面(例如Redli),则某些命令的确切输出可能会有所不同。redis-cli

另外,您可以提供一个托管的Redis数据库实例来测试这些命令,但是请注意,根据数据库提供者所允许的控制级别,本指南中的某些命令可能无法按所述方式工作。要配置DigitalOcean托管数据库,请遵循我们的托管数据库产品文档。然后,您必须 安装Redli 设置TLS隧道才能通过TLS连接到托管数据库。

创建Hashes

要创建Hashes,请运行hset命令。此命令接受Hashes键的名称,字段字符串和相应的值字符串作为参数:

hset poet:Verlaine nationality French

**注意:**在此示例及以下示例中,poet:Verlaine是Hashes键。点,破折号和冒号通常用于使多字键和字段更具可读性。确保您的密钥遵循一致且易于阅读的格式很有帮助。

hset返回(integer) 1如果指定的字段是一个新的领域和值设置正确:

1

但是,如果您未能包含Hashes键的值,字段或名称,hset将返回错误。

另外,请注意,hset如果Hashes值已经存在,它将覆盖其内容:

hset poet:Verlaine nationality Francais

如果该字段已经存在并且其值已成功更新,hset将返回(integer) 0

0

您还可以hsetnx用于将字段添加到Hashes,但是只有在字段不存在时才起作用。如果指定的字段已经存在,hsetnx将不会有任何效果,并将返回(integer) 0

hsetnx poet:Verlaine nationality French


0

要将多个字段/值对设置为给定的集合,请使用hmset命令,后跟相应的字段/值字符串:

hmset poet:Verlaine born 1844 died 1896 genre Decadent

hmset``OK成功就会返回。

从Hashes中检索信息

您可以使用以下hexists命令确定给定Hashes的字段是否存在:

hexists poet:Verlaine nationality

hexists``(integer) 1如果该字段确实存在,则返回,如果不存在则返回(integer) 0

要返回一个字段的值,请运行以下hget命令,然后依次按Hashes键和要检索其值的字段:

hget poet:Verlaine nationality


"Francais"

hmget 使用相同的语法,但可以返回多个字段的值

hmget poet:Verlaine born died


1) "1844"
2) "1896"

如果您传递给hgethmget不存在的Hashes,这两个命令将返回(nil)

hmget poet:Dickinson born died


1) (nil)
2) (nil)

要获取特定Hashes中包含的所有字段的列表,请运行以下hkeys命令:

hkeys poet:Verlaine


1) "nationality"
2) "born"
3) "died"
4) "genre"

相反,运行hvals以检索散列中包含的值的列表:

hvals poet:Verlaine


1) "French"
2) "1844"
3) "1896"
4) "Decadent"

要返回Hashes表所包含的每个字段及其关联值的列表,请运行hgetall

hgetall poet:Verlaine


1) "nationality"
2) "French"
3) "born"
4) "1844"
5) "died"
6) "1896"
7) "genre"
8) "Decadent"

您可以通过运行来查找Hashes中的字段数hlen,它代表“ h ash len gth”:

hlen poet:Verlaine


4

你可以找到一个字段关联的值字符串的长度hstrlen,它的全称是“ ^ h海峡荷兰国际集团LEN GTH”:

hstrlen poet:Verlaine nationality


8

hlen``(integer) 0如果Hashes不存在,将返回。

从Hashes中删除字段

要从Hashes表中删除字段,请运行hdel命令。hdel可以接受多个字段作为参数,并将返回一个整数,该整数指示从Hashes中删除了多少个字段:

hdel poet:Verlaine born died


2

如果您将一个不存在的字段传递给hdel,它将忽略该字段,但删除您指定的任何其他现有字段。

结论

本指南详细介绍了用于在Redis中创建和管理Hashes的许多命令。如果您想在本指南中概述其他相关的命令,参数或过程,请在下面的评论中提出疑问或提出建议。

有关Redis命令的更多信息,请参阅关于如何管理Redis数据库的系列教程。
作者:分布式编程
出处:https://zthinker.com/

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消