1. 如何在ubuntu18.04上安装和保护redis
  2. 如何连接到Redis数据库
  3. 如何管理Redis数据库和Keys
  4. 如何在Redis中管理副本和客户端
  5. 如何在Redis中管理字符串
  6. 如何在Redis中管理list
  7. 如何在Redis中管理Hashes
  8. 如何在Redis中管理Sets
  9. 如何在Redis中管理Sorted Sets
  10. 如何在Redis中运行事务
  11. 如何使Redis中的Key失效
  12. 如何解决Redis中的问题
  13. 如何从命令行更改Redis的配置
  14. Redis数据类型简介

介绍

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/
如果你喜欢本文,请长按二维码,关注 分布式编程
.

(Redis基础教程之七)如何使用Redis中的Hashes的更多相关文章

  1. (Redis基础教程之六)如何使用Redis中的List

    如何在ubuntu18.04上安装和保护redis 如何连接到Redis数据库 如何管理Redis数据库和Keys 如何在Redis中管理副本和客户端 如何在Redis中管理字符串 如何在Redis中 ...

  2. mongodb,Mysql,redis基础教程

    数据库基础 1:mongodb基础教程 1:pymongo基础教程  2:Mysql基础教程 3:redis基础教程

  3. NewLife.Redis基础教程

    X组件缓存架构以ICache接口为核心,包括MemoryCache.Redis和DbCache实现,支持FX和netstandard2.0!后续例程与使用说明均以Redis为例,各缓存实现类似. Re ...

  4. Redis入门教程(三)— Java中操作Redis

    在Redis的官网上,我们可以看到Redis的Java客户端众多 其中,Jedis是Redis官方推荐,也是使用用户最多的Java客户端. 开始前的准备 使用jedis使用到的jedis-2.1.0. ...

  5. Redis基础教程

    说明:本文中涉及的代码是c#所写,连接redis的第三方驱动为ServiceStack.Redis.连接redis的客户端软件为redis-desktop-manager. 一.Redis是什么 Re ...

  6. Spring Boot 2.x基础教程:找回启动日志中的请求路径列表

    如果您看过之前的Spring Boot 1.x教程,或者自己原本就对Spring Boot有一些经验,或者对Spring MVC很熟悉.那么对于Spring构建的Web应用在启动的时候,都会输出当前应 ...

  7. (Python基础教程之十三)Python中使用httplib2 – HTTP GET和POST示例

    Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...

  8. JQuery基础教程:选择元素(中)

    自定义选择符 JQuery在各种CSS选择符的基础上还添加了独有的完全不同的自定义选择符,注意,只要可能,jQuery就会使用浏览器原生的DOM选择符引擎去查找元素.但在使用自定义选择符的时候,就无法 ...

  9. Linux+Redis实战教程_day03_4、通用redis命令【重点】

    4.通用redis命令[重点] Redis五种数据类型,String,hash,list,set,有序set l keys pattern:获取所有与pattern匹配的key,返回所有与该key匹配 ...

  10. 【Nutch基础教程之七】Nutch的2种运行模式:local及deploy

    在对nutch源代码运行ant runtime后,会创建一个runtime的目录,在runtime目录下有deploy和local 2个目录. [jediael@jediael runtime]$ l ...

随机推荐

  1. 1055 - Expression #9 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'xxx.xxx.xxx' which is not functionally ...;this is incompatible with sql_mode=only_full_group_by

    MySQL 8 的默认 sql_mode 包含了only_full_group_by,如果想要sql不按照这模式做检查,可以设置当前session的sql_mode值不包含oly_full_group ...

  2. ocelot 从15.x版本升级到16.x版本 UnableToFindDownstreamRouteError Message: Failed to mat ch Route configuration for upstream path

    项目里面用到 ocelot ,之前老的项目用的是 15.x 最近要一个新项目也要用到,直接安装了最新的16.x,结果死活都匹配不到上游路径. 刚开始以为是自己代码写得有问题,各种找问题,结果后来把oc ...

  3. 【YashanDB数据库】yasql登录有特殊字符@导致无法登录

    问题备机 Linux bash shell环境下,使用yasql登录数据库没有使用转义导致登录失败.报错信息如下 问题分析 linux特殊字符转义问题,多加几层转义可以解决问题. 解决办法 su - ...

  4. Authentication vs. Authorization

    Authentication vs. Authorization So, what is the difference between authentication and authorization ...

  5. Java是值传递还是引用传递,又是怎么体现的

    关于Java是值传递还是引用传递,可以从代码层面来实现一下拿到结果 执行下面的代码: public static void main(String[] args) { int num = 10; St ...

  6. Coze插件发布!PDF转Markdown功能便捷集成,打造你的专属智能体

    近日,TextIn开发的PDF转Markdown插件正式上架Coze平台. 在扣子搜索"pdf转markdown",或在Coze平台搜索"pdf2markdown&quo ...

  7. Stooges – AI 孙燕姿

    很久没有写文章了... 最近听了 AI 孙燕姿 的一首歌 <一场游戏一场梦>, 有感而发. 所以特别写一篇记入一下我的这半年很火的 AI 的想法.

  8. CSS & JS Effect – Statistics Counter

    效果 当 scroll 到那些号码的时候, 号码从 0 开始跳动, 一直到最终的值. 实现思路 1. 一开始把号码 set to 0 2. 使用 IntersectionObserver 监听号码出现 ...

  9. Azure 入门系列 (第二篇 Backup 和 Disaster Recovery)

    本系列 这个系列会介绍从 0 到 1 搭建一个 Web Application 的 Server. 间中还会带上一些真实开发常用的功能. 一共 6 篇 1. Virtual Machine (VM) ...

  10. Java中使用BigDecimal进行double类型的计算(高精度,可保留几位小数)

    Java中 小数直接进行乘除运算,会出现精度问题导致计算结果有误需要使用 BigDecimal 类型辅助运算,保证精度无误源码: import java.math.BigDecimal;import ...