(Redis基础教程之七)如何使用Redis中的Hashes
- 如何在ubuntu18.04上安装和保护redis
- 如何连接到Redis数据库
- 如何管理Redis数据库和Keys
- 如何在Redis中管理副本和客户端
- 如何在Redis中管理字符串
- 如何在Redis中管理list
- 如何在Redis中管理Hashes
- 如何在Redis中管理Sets
- 如何在Redis中管理Sorted Sets
- 如何在Redis中运行事务
- 如何使Redis中的Key失效
- 如何解决Redis中的问题
- 如何从命令行更改Redis的配置
- Redis数据类型简介
介绍
Redis是一个开源的内存中键值数据存储。Redis Hashes是一种数据类型,表示字符串字段和字符串值之间的映射。Hashes可以容纳许多字段-值对,并且设计为不占用太多空间,因此使其非常适合表示数据对象。例如,Hashes可能代表一个客户,以及包括像场name,address,email,或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"
如果您传递给hget或hmget不存在的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的更多相关文章
- (Redis基础教程之六)如何使用Redis中的List
如何在ubuntu18.04上安装和保护redis 如何连接到Redis数据库 如何管理Redis数据库和Keys 如何在Redis中管理副本和客户端 如何在Redis中管理字符串 如何在Redis中 ...
- mongodb,Mysql,redis基础教程
数据库基础 1:mongodb基础教程 1:pymongo基础教程 2:Mysql基础教程 3:redis基础教程
- NewLife.Redis基础教程
X组件缓存架构以ICache接口为核心,包括MemoryCache.Redis和DbCache实现,支持FX和netstandard2.0!后续例程与使用说明均以Redis为例,各缓存实现类似. Re ...
- Redis入门教程(三)— Java中操作Redis
在Redis的官网上,我们可以看到Redis的Java客户端众多 其中,Jedis是Redis官方推荐,也是使用用户最多的Java客户端. 开始前的准备 使用jedis使用到的jedis-2.1.0. ...
- Redis基础教程
说明:本文中涉及的代码是c#所写,连接redis的第三方驱动为ServiceStack.Redis.连接redis的客户端软件为redis-desktop-manager. 一.Redis是什么 Re ...
- Spring Boot 2.x基础教程:找回启动日志中的请求路径列表
如果您看过之前的Spring Boot 1.x教程,或者自己原本就对Spring Boot有一些经验,或者对Spring MVC很熟悉.那么对于Spring构建的Web应用在启动的时候,都会输出当前应 ...
- (Python基础教程之十三)Python中使用httplib2 – HTTP GET和POST示例
Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...
- JQuery基础教程:选择元素(中)
自定义选择符 JQuery在各种CSS选择符的基础上还添加了独有的完全不同的自定义选择符,注意,只要可能,jQuery就会使用浏览器原生的DOM选择符引擎去查找元素.但在使用自定义选择符的时候,就无法 ...
- Linux+Redis实战教程_day03_4、通用redis命令【重点】
4.通用redis命令[重点] Redis五种数据类型,String,hash,list,set,有序set l keys pattern:获取所有与pattern匹配的key,返回所有与该key匹配 ...
- 【Nutch基础教程之七】Nutch的2种运行模式:local及deploy
在对nutch源代码运行ant runtime后,会创建一个runtime的目录,在runtime目录下有deploy和local 2个目录. [jediael@jediael runtime]$ l ...
随机推荐
- 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 ...
- ocelot 从15.x版本升级到16.x版本 UnableToFindDownstreamRouteError Message: Failed to mat ch Route configuration for upstream path
项目里面用到 ocelot ,之前老的项目用的是 15.x 最近要一个新项目也要用到,直接安装了最新的16.x,结果死活都匹配不到上游路径. 刚开始以为是自己代码写得有问题,各种找问题,结果后来把oc ...
- 【YashanDB数据库】yasql登录有特殊字符@导致无法登录
问题备机 Linux bash shell环境下,使用yasql登录数据库没有使用转义导致登录失败.报错信息如下 问题分析 linux特殊字符转义问题,多加几层转义可以解决问题. 解决办法 su - ...
- Authentication vs. Authorization
Authentication vs. Authorization So, what is the difference between authentication and authorization ...
- Java是值传递还是引用传递,又是怎么体现的
关于Java是值传递还是引用传递,可以从代码层面来实现一下拿到结果 执行下面的代码: public static void main(String[] args) { int num = 10; St ...
- Coze插件发布!PDF转Markdown功能便捷集成,打造你的专属智能体
近日,TextIn开发的PDF转Markdown插件正式上架Coze平台. 在扣子搜索"pdf转markdown",或在Coze平台搜索"pdf2markdown&quo ...
- Stooges – AI 孙燕姿
很久没有写文章了... 最近听了 AI 孙燕姿 的一首歌 <一场游戏一场梦>, 有感而发. 所以特别写一篇记入一下我的这半年很火的 AI 的想法.
- CSS & JS Effect – Statistics Counter
效果 当 scroll 到那些号码的时候, 号码从 0 开始跳动, 一直到最终的值. 实现思路 1. 一开始把号码 set to 0 2. 使用 IntersectionObserver 监听号码出现 ...
- Azure 入门系列 (第二篇 Backup 和 Disaster Recovery)
本系列 这个系列会介绍从 0 到 1 搭建一个 Web Application 的 Server. 间中还会带上一些真实开发常用的功能. 一共 6 篇 1. Virtual Machine (VM) ...
- Java中使用BigDecimal进行double类型的计算(高精度,可保留几位小数)
Java中 小数直接进行乘除运算,会出现精度问题导致计算结果有误需要使用 BigDecimal 类型辅助运算,保证精度无误源码: import java.math.BigDecimal;import ...