Redis之hash类型

news2025/2/24 20:18:06

文章目录

  • Redis之hash类型
  • 1. 设置一个字段/获取一个字段
  • 2. 获取所有字段值
  • 3. 判断字段是否存在
  • 4. 设置多个字段/获取多个字段
  • 5. 只获取字段名/字段值
  • 6. 获取某个key内全部数量
  • 7. 增加数字
  • 8. 删除key内字段
  • 9. 字段不存在时赋值
  • 10. 应用场景

Redis之hash类型

在这里插入图片描述
redis的hash类型,就像Java中的Map<String, Map<Object,Object>>

1. 设置一个字段/获取一个字段

设置一个字段:HSET key field value
获取一个字段:HGET key field

127.0.0.1:6379> hset user id 1
(integer) 1
127.0.0.1:6379> hget user id
"1"

2. 获取所有字段值

HGETALL key

127.0.0.1:6379> hgetall user
1) "id"
2) "1"

3. 判断字段是否存在

HEXISTS key field
存在返回1,不存在返回0.

127.0.0.1:6379> hexists user id
(integer) 1
127.0.0.1:6379> hexists user name
(integer) 0
127.0.0.1:6379> hgetall user
1) "id"
2) "1"

4. 设置多个字段/获取多个字段

设置多个字段:HMSET key field value [field value …]
获取多个字段:HMGET key field [field …]

127.0.0.1:6379> hgetall user
1) "id"
2) "1"
127.0.0.1:6379> hmset user name zhangsan address xian score 99
OK
127.0.0.1:6379> hmget user id name
1) "1"
2) "zhangsan"
127.0.0.1:6379> hmget user id name address score
1) "1"
2) "zhangsan"
3) "xian"
4) "99"
127.0.0.1:6379> hgetall user
1) "id"
2) "1"
3) "name"
4) "zhangsan"
5) "address"
6) "xian"
7) "score"
8) "99"

5. 只获取字段名/字段值

获取字段名:HKEYS key
获取字段值:HVALS key

127.0.0.1:6379> hgetall user
1) "id"
2) "1"
3) "name"
4) "zhangsan"
5) "address"
6) "xian"
7) "score"
8) "99"
127.0.0.1:6379> hkeys user
1) "id"
2) "name"
3) "address"
4) "score"
127.0.0.1:6379> hvals user
1) "1"
2) "zhangsan"
3) "xian"
4) "99"
127.0.0.1:6379> hvals person
(empty list or set)
127.0.0.1:6379> hkeys person
(empty list or set)

6. 获取某个key内全部数量

HLEN key

127.0.0.1:6379> hgetall user
1) "id"
2) "1"
3) "name"
4) "zhangsan"
5) "address"
6) "xian"
7) "score"
8) "99"
127.0.0.1:6379> hlen user
(integer) 4

7. 增加数字

HINCRBY key field increment

127.0.0.1:6379> hget user id
"1"
127.0.0.1:6379> hincrby user id 5
(integer) 6
127.0.0.1:6379> hget user id
"6"

8. 删除key内字段

HDEL key field

127.0.0.1:6379> hgetall user
1) "id"
2) "6"
3) "name"
4) "zhangsan"
5) "address"
6) "xian"
7) "score"
8) "99"
127.0.0.1:6379> hkeys user
1) "id"
2) "name"
3) "address"
4) "score"
127.0.0.1:6379> hdel user address
(integer) 1
127.0.0.1:6379> hgetall user
1) "id"
2) "6"
3) "name"
4) "zhangsan"
5) "score"
6) "99"
127.0.0.1:6379> hkeys user
1) "id"
2) "name"
3) "score"

9. 字段不存在时赋值

HSETNX key field value

127.0.0.1:6379> hkeys user
1) "id"
2) "name"
3) "score"
127.0.0.1:6379> hsetnx user address xian
(integer) 1
127.0.0.1:6379> hkeys user
1) "id"
2) "name"
3) "score"
4) "address"
127.0.0.1:6379> hvals user
1) "6"
2) "zhangsan"
3) "99"
4) "xian"
127.0.0.1:6379> hgetall user
1) "id"
2) "6"
3) "name"
4) "zhangsan"
5) "score"
6) "99"
7) "address"
8) "xian"
127.0.0.1:6379> hsetnx user score 98
(integer) 0
127.0.0.1:6379> hgetall user
1) "id"
2) "6"
3) "name"
4) "zhangsan"
5) "score"
6) "99"
7) "address"
8) "xian"

10. 应用场景

  • 购物车

用户id为100的用户购物车,买了商品item1 1件, 商品item2 1件,然后增加商品item2 到4件,查看用户总共买了多少商品,每个商品分别是多少。

127.0.0.1:6379> hset shopcar:uid100 item1 1
(integer) 1
127.0.0.1:6379> hset shopcar:uid100 item2 1
(integer) 1
127.0.0.1:6379> hincrby shopcar:uid100 item2 3
(integer) 4
127.0.0.1:6379> hlen shopcar:uid100
(integer) 2
127.0.0.1:6379> hgetall shopcar:uid100
1) "item1"
2) "1"
3) "item2"
4) "4"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1027777.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Google Play上线规范及流程

将应用发布到 Google Play 商店需要遵循一系列规范和流程&#xff0c;以确保应用的质量、安全性和用户体验。以下是发布应用到 Google Play 的一般规范和流程&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流…

【linux基础(七)】Linux中的开发工具(下)--make/makefile和git

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:Linux从入门到开通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学更多操作系统知识   &#x1f51d;&#x1f51d; Linux中的开发工具 1. 前言2.…

代码随想录算法训练营第一天(C)| 704. 二分查找 27. 移除元素

文章目录 前言一、704. 二分查找二、27. 移除元素三、34. 在排序数组中查找元素的第一个和最后一个位置总结 前言 这次是C&#xff1b; 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素_愚者__的博客-CSDN博客 &#xff08;java&#xff09; 一、704. 二分查找 的优…

【HarmonyOS】【FAQ】HarmonyOS应用开发相关问题解答(四)

贴接上回。。。 【往期FAQ参考】 【HarmonyOS】【FAQ】HarmonyOS应用开发相关问题解答&#xff08;一&#xff09; 【HarmonyOS】【FAQ】HarmonyOS应用开发相关问题解答&#xff08;二&#xff09; 【HarmonyOS】【FAQ】HarmonyOS应用开发相关问题解答&#xff08;三&#x…

ELFK之zookeeper+kafka

目录 kafkazookeeper的系统架构 Zookeeper 一、zookeeper概述 二、zookeeper特点 三、zookeeper选举机制 四、应用场景 五、zookeeper实验实例 Kafka 一、概述 为什么需要消息队列(MQ) 使用消息队列的好处 消息队列的两种模式 Kafka 定义 二、Kafka 的特性 三、Ka…

【Linux系统编程】通过系统调用获取进程标识符 及 创建子进程(fork)

文章目录 1. 通过系统调用获取进程标示符&#xff08;PID&#xff09;1.1 进程id&#xff08;PID&#xff09;1.2 父进程id&#xff08;PPID&#xff09; 2. bash也是一个进程3. 通过系统调用创建进程-fork初识3.1 批量化注释3.2 取消注释3.3 fork创建子进程3.4 fork的返回值3.…

【AD】【PCB封装规范计划】 -CON排针类

像这种CON&#xff0c;排针的。画PCB封装的时候&#xff0c;要把数字用丝印标出来&#xff01;&#xff01;&#xff01;

浏览器调用本地exe

本地新建 .reg 文件添加注册表信息 修改路径和自定义协议名称 双击运行reg文件添加注册表信息 各参数说明&#xff0c;路径需要多加一个\转义 reg文件样例 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\localexe] "URL Protocol""C:\\Use…

java集合之迭代器遍历元素

集合遍历 遍历、迭代、逐个获取容器中的元素 Iterable接口 实现了Iterable接口的类是可以遍历的&#xff0c;因为Iterable接口是Collection接口的父接口&#xff0c;而所有单列集合类都实现了Collection接口&#xff0c;从而也都实现了Iterable接口&#xff0c;所以所有单列集…

电压放大器在电子测试中的应用有哪些方面

电压放大器是一种常见的电子设备&#xff0c;广泛应用于各种测试和测量应用中。以下是电压放大器在电子测试中的几个主要方面应用的简要介绍。 信号采集与处理&#xff1a;电压放大器通常用于信号采集和处理&#xff0c;在测试过程中将低电平信号放大到适合进一步处理或分析的水…

【python基础】编写/运行hello world项目

1.编写hello world项目 编程界每种语言的第一个程序往往都是输出hello world。因此我们来看看&#xff0c;如何用Python输出hello world。 1.如果你是初学者&#xff0c;main.py中的代码暂时是无法看懂的&#xff0c;所以可以把main中的源代码直接删除。如下所示 这里我们要…

Blender Morph Targets

推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 在 Blender 中&#xff0c;Morph Target被称为Shape Key&#xff0c;即形状键&#xff0c;是将网格从一种形状变形为另一种形状的工具。 每个对象都被分配了一个基本形状&#xff0c;然后可以有许多可以变形的形状键。 形…

C# linq初探 使用linq查询数组中元素

使用linq进行数组查询 输出数组中全部的偶数并升序输出结果 写法1&#xff1a; int[] numbers { 5, 10, 8, 3, 6, 12 }; //查询的数组var numqurey from num in numberswhere num % 2 0 //按照条件过滤orderby numselect num;foreach (var num in numqurey){Console.Writ…

面试官:你是怎么理解ES6中 Decorator 的?使用场景?

&#x1f3ac; 岸边的风&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 一、介绍 二、用法 类的装饰 类属性的装饰 注意 三、使用场景 antobind readonly deprecate 一、介绍 Dec…

OSI模型与数据的封装

1、OSI模型 上层|| 七层模型 四层模型|| 应用层| 表示层 应用层 http/ftp/ssh/ftps| 会话层 -----------------------------------------------------------------------| 传输层 传输层 tcp/udp ------------------------------…

Java基于SpringBoot的财务管理系统,附源码,教程

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W,Csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 一 简介第二.主要技术第三、部分效果图第四章 系统设计4.1功能结构4.2 数据库设计4.2.1 数据库E/R…

软件设计原则扩展

一、引言 经典的软件设计7大原则 开闭原则&#xff08;Open Close Principle, OCP&#xff09; 依赖倒置原则&#xff08;Dependence Inversion Principle, DIP&#xff09; 单一职责原则&#xff08;Simple Responsibility Principle, SRP&#xff09; 接口隔离原则&#xf…

力扣刷题-82. 删除排序链表中的重复元素

题目来源&#xff1a;力扣82 题目描述&#xff1a; 代码及思路&#xff1a; class Solution {public ListNode deleteDuplicates(ListNode head) {/**判断下一个节点的值与下下个的值是否相同&#xff0c;相同&#xff1a;循环到没有相同 下一个节点指到值不同的节点上不同&a…

C语言进阶第三课-----------指针的进阶----------后续版

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

构建自动化测试环境:使用Docker和Selenium!

随着软件开发的日益复杂和迭代速度的加快&#xff0c;自动化测试被越来越广泛地应用于软件开发流程中。它能够提高测试效率、减少测试成本&#xff0c;并保证软件质量的稳定性。在构建自动化测试环境方面&#xff0c;Docker 和 Selenium 是两个非常有用的工具。下面将介绍如何使…