当前位置: 首页 > news >正文

Redis命令---Hash(哈希)篇 (超全)

目录

  • 1.Redis Hmset 命令 - 同时将多个 field-value (域-值)对设置到哈希表 key 中。
    • 简介
    • 语法
      • 可用版本: >= 2.0.0
      • 返回值: 如果命令执行成功,返回 OK 。
    • 示例
  • 2.Redis Hmget 命令 - 获取所有给定字段的值
    • 简介
    • 语法
      • 可用版本: >= 2.0.0
      • 返回值: 一个包含多个给定字段关联值的表,表值的排列顺序和指定字段的请求顺序一样。
    • 示例
  • 3.Redis Hset 命令 - 将哈希表 key 中的字段 field 的值设为 value 。
    • 简介
    • 语法
      • 可用版本: >= 2.0.0
      • 返回值: 如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 。 如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0 。
    • 示例
  • 4.Redis Hgetall 命令 - 获取在哈希表中指定 key 的所有字段和值
    • 简介
    • 语法
      • 可用版本: >= 2.0.0
      • 返回值: 以列表形式返回哈希表的字段及字段值。 若 key 不存在,返回空列表。
    • 示例
  • 5.Redis Hget 命令 - 获取存储在哈希表中指定字段的值/td>
    • 简介
    • 语法
      • 可用版本: >= 2.0.0
      • 返回值: 返回给定字段的值。如果给定的字段或 key 不存在时,返回 nil 。
    • 示例
  • 6.Redis Hexists 命令 - 查看哈希表 key 中,指定的字段是否存在。
    • 简介
    • 语法
      • 可用版本: >= 2.0.0
      • 返回值: 如果哈希表含有给定字段,返回 1 。 如果哈希表不含有给定字段,或 key 不存在,返回 0 。
    • 示例
  • 7.Redis Hincrby 命令 - 为哈希表 key 中的指定字段的整数值加上增量 increment 。
    • 简介
    • 语法
      • 可用版本: >= 2.0.0
      • 返回值: 执行 HINCRBY 命令之后,哈希表中字段的值。
    • 示例
  • 8.Redis Hlen 命令 - 获取哈希表中字段的数量
    • 简介
    • 语法
      • 可用版本: >= 2.0.0
      • 返回值: 哈希表中字段的数量。 当 key 不存在时,返回 0 。
    • 示例
  • 9.Redis Hdel 命令 - 删除一个或多个哈希表字段
    • 简介
    • 语法
      • 可用版本: >= 2.0.0
      • 返回值: 被成功删除字段的数量,不包括被忽略的字段。
    • 示例
  • 10.Redis Hvals 命令 - 获取哈希表中所有值
    • 简介
    • 语法
      • 可用版本: >= 2.0.0
      • 返回值: 一个包含哈希表中所有值的表。 当 key 不存在时,返回一个空表。
    • 示例
  • 11.Redis Hincrbyfloat 命令 - 为哈希表 key 中的指定字段的浮点数值加上增量 increment 。
    • 简介
    • 语法
      • 可用版本: >= 2.6.0
      • 返回值: 执行 Hincrbyfloat 命令之后,哈希表中字段的值。
    • 示例
  • 12.Redis Hkeys 命令 - 获取所有哈希表中的字段
    • 简介
    • 语法
      • 可用版本: >= 2.0.0
      • 返回值: 包含哈希表中所有字段的列表。 当 key 不存在时,返回一个空列表。
    • 示例
  • 13.Redis Hsetnx 命令 - 只有在字段 field 不存在时,设置哈希表字段的值。
    • 简介
    • 语法
      • 可用版本: >= 2.0.0
      • 返回值: 设置成功,返回 1 。 如果给定字段已经存在且没有操作被执行,返回 0 。
    • 示例
  • 总结

1.Redis Hmset 命令 - 同时将多个 field-value (域-值)对设置到哈希表 key 中。

简介

如果哈希表不存在,会创建一个空哈希表,并执行 HMSET 操作。此命令会覆盖哈希表中已存在的字段。Redis Hmset 命令用于同时将多个 field-value (字段-值)对设置到哈希表中。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HMSET KEY_NAME FIELD1 VALUE1 ...FIELDN VALUEN

可用版本: >= 2.0.0

返回值: 如果命令执行成功,返回 OK 。

示例

redis 127.0.0.1:6379> HSET myhash field1 "foo" field2 "bar"
OK
redis 127.0.0.1:6379> HGET myhash field1
"foo"
redis 127.0.0.1:6379> HMGET myhash field2
"bar"

2.Redis Hmget 命令 - 获取所有给定字段的值

简介

如果指定的字段不存在于哈希表,那么返回一个 nil 值。Redis Hmget 命令用于返回哈希表中,一个或多个给定字段的值。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HMGET KEY_NAME FIELD1...FIELDN

可用版本: >= 2.0.0

返回值: 一个包含多个给定字段关联值的表,表值的排列顺序和指定字段的请求顺序一样。

示例

redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HSET myhash field2 "bar"
(integer) 1
redis 127.0.0.1:6379> HMGET myhash field1 field2 nofield
1) "foo"
2) "bar"
3) (nil)

3.Redis Hset 命令 - 将哈希表 key 中的字段 field 的值设为 value 。

简介

如果字段已经存在于哈希表中,旧值将被覆盖。如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。Redis Hset 命令用于为哈希表中的字段赋值 。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HSET KEY_NAME FIELD VALUE

可用版本: >= 2.0.0

返回值: 如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 。 如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0 。

示例

redis 127.0.0.1:6379> HSET myhash field1 "foo"
OK
redis 127.0.0.1:6379> HGET myhash field1
"foo"redis 127.0.0.1:6379> HSET website google "www.g.cn"       # 设置一个新域
(integer) 1redis 127.0.0.1:6379>HSET website google "www.google.com" # 覆盖一个旧域
(integer) 0

4.Redis Hgetall 命令 - 获取在哈希表中指定 key 的所有字段和值

简介

在返回值里,紧跟每个字段名(field name)之后是字段的值(value),所以返回值的长度是哈希表大小的两倍。Redis Hgetall 命令用于返回哈希表中,所有的字段和值。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HGETALL KEY_NAME

可用版本: >= 2.0.0

返回值: 以列表形式返回哈希表的字段及字段值。 若 key 不存在,返回空列表。

示例

redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HSET myhash field2 "bar"
(integer) 1
redis 127.0.0.1:6379> HGETALL myhash
1) "field1"
2) "Hello"
3) "field2"
4) "World"

5.Redis Hget 命令 - 获取存储在哈希表中指定字段的值/td>

简介

Redis Hget 命令用于返回哈希表中指定字段的值。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HGET KEY_NAME FIELD_NAME

可用版本: >= 2.0.0

返回值: 返回给定字段的值。如果给定的字段或 key 不存在时,返回 nil 。

示例

# 字段存在redis> HSET site redis redis.com
(integer) 1redis> HGET site redis
"redis.com"# 字段不存在redis> HGET site mysql
(nil)

6.Redis Hexists 命令 - 查看哈希表 key 中,指定的字段是否存在。

简介

Redis Hexists 命令用于查看哈希表的指定字段是否存在。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HEXISTS KEY_NAME FIELD_NAME

可用版本: >= 2.0.0

返回值: 如果哈希表含有给定字段,返回 1 。 如果哈希表不含有给定字段,或 key 不存在,返回 0 。

示例

redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HEXISTS myhash field1
(integer) 1
redis 127.0.0.1:6379> HEXISTS myhash field2
(integer) 0

7.Redis Hincrby 命令 - 为哈希表 key 中的指定字段的整数值加上增量 increment 。

简介

本操作的值被限制在 64 位(bit)有符号数字表示之内。对一个储存字符串值的字段执行 HINCRBY 命令将造成一个错误。如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。如果哈希表的 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。增量也可以为负数,相当于对指定字段进行减法操作。Redis Hincrby 命令用于为哈希表中的字段值加上指定增量值。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HINCRBY KEY_NAME FIELD_NAME INCR_BY_NUMBER

可用版本: >= 2.0.0

返回值: 执行 HINCRBY 命令之后,哈希表中字段的值。

示例

redis 127.0.0.1:6379> HSET myhash field1 20
(integer) 1
redis 127.0.0.1:6379> HINCRBY myhash field 1
(integer) 21
redis 127.0.0.1:6379> HINCRBY myhash field -1
(integer) 20

8.Redis Hlen 命令 - 获取哈希表中字段的数量

简介

Redis Hlen 命令用于获取哈希表中字段的数量。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HLEN KEY_NAME

可用版本: >= 2.0.0

返回值: 哈希表中字段的数量。 当 key 不存在时,返回 0 。

示例

redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HSET myhash field2 "bar"
(integer) 1
redis 127.0.0.1:6379> HLEN myhash
(integer) 2

9.Redis Hdel 命令 - 删除一个或多个哈希表字段

简介

Redis Hdel 命令用于删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HDEL KEY_NAME FIELD1.. FIELDN

可用版本: >= 2.0.0

返回值: 被成功删除字段的数量,不包括被忽略的字段。

示例

redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HDEL myhash field1
(integer) 1
redis 127.0.0.1:6379> HDEL myhash field2
(integer) 0

10.Redis Hvals 命令 - 获取哈希表中所有值

简介

Redis Hvals 命令返回哈希表所有字段的值。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HVALS KEY_NAME FIELD VALUE

可用版本: >= 2.0.0

返回值: 一个包含哈希表中所有值的表。 当 key 不存在时,返回一个空表。

示例

redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HSET myhash field2 "bar"
(integer) 1
redis 127.0.0.1:6379> HVALS myhash
1) "foo"
2) "bar"# 空哈希表/不存在的keyredis 127.0.0.1:6379> EXISTS not_exists
(integer) 0redis 127.0.0.1:6379> HVALS not_exists
(empty list or set)

11.Redis Hincrbyfloat 命令 - 为哈希表 key 中的指定字段的浮点数值加上增量 increment 。

简介

如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。Redis Hincrbyfloat 命令用于为哈希表中的字段值加上指定浮点数增量值。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HINCRBYFLOAT KEY_NAME FIELD_NAME INCR_BY_NUMBER

可用版本: >= 2.6.0

返回值: 执行 Hincrbyfloat 命令之后,哈希表中字段的值。

示例

redis 127.0.0.1:6379> HSET myhash field 20.50
(integer) 1
redis 127.0.0.1:6379> HINCRBYFLOAT mykey field 0.1
"20.60"

12.Redis Hkeys 命令 - 获取所有哈希表中的字段

简介

Redis Hkeys 命令用于获取哈希表中的所有字段名。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HKEYS KEY_NAME FIELD_NAME INCR_BY_NUMBER

可用版本: >= 2.0.0

返回值: 包含哈希表中所有字段的列表。 当 key 不存在时,返回一个空列表。

示例

redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HSET myhash field2 "bar"
(integer) 1
redis 127.0.0.1:6379> HKEYS myhash
1) "field1"
2) "field2"

13.Redis Hsetnx 命令 - 只有在字段 field 不存在时,设置哈希表字段的值。

简介

如果 key 不存在,一个新哈希表被创建并执行 HSETNX 命令。如果字段已经存在于哈希表中,操作无效。如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。Redis Hsetnx 命令用于为哈希表中不存在的的字段赋值 。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HSETNX KEY_NAME FIELD VALUE

可用版本: >= 2.0.0

返回值: 设置成功,返回 1 。 如果给定字段已经存在且没有操作被执行,返回 0 。

示例

redis 127.0.0.1:6379> HSETNX myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HSETNX myhash field1 "bar"
(integer) 0
redis 127.0.0.1:6379> HGET myhash field1
"foo"redis 127.0.0.1:6379> HSETNX nosql key-value-store redis
(integer) 1redis 127.0.0.1:6379> HSETNX nosql key-value-store redis       # 操作无效, key-value-store 已存在
(integer) 0

总结

在这里插入图片描述

往期回顾
Redis命令—String篇 (超全)
Redis命令—key篇 (超全)

相关文章:

Redis命令---Hash(哈希)篇 (超全)

目录 1.Redis Hmset 命令 - 同时将多个 field-value (域-值)对设置到哈希表 key 中。简介语法可用版本: > 2.0.0返回值: 如果命令执行成功,返回 OK 。 示例 2.Redis Hmget 命令 - 获取所有给定字段的值简介语法可用版本: > 2.0.0返回值: 一个包含多个给定字段…...

Objects are not valid as a React child (found: object with keys {name}).

在jsx中可以嵌套表达式,将表达式作为内容的一部分,但是要注意,普通对象不能作为子元素;但是数组,react元素对象是可以的 如下:不能将stu这个对象作为子元素放 function App() {const myCal imgStyleconst…...

nodejs业务分层如何写后端接口

这里展示的是在node express 项目中的操作 ,数据库使用的是MongoDB,前期关于express和MongoDB的文章可访问: Nodejs后端express框架 server后端接口操作:通过路由匹配——>调用对应的 Controller——>进行 Service调用——&…...

Windows 7 虚拟机的安装以及解决安装VMVMware tools问题

1.Windows 7 虚拟机的安装以及解决安装VMVMware tools问题 参考:Windows 7 虚拟机的安装以及解决安装VMVMware tools问题 注意:下载官方补丁:Microsoft Update Catalog在智慧联想浏览器中打不开,要在火狐中才能打开下载。 2.win7如…...

[足式机器人]Part2 Dr. CAN学习笔记-自动控制原理Ch1-9PID控制器

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-自动控制原理Ch1-9PID控制器) P —— Proportional I —— Integral D —— Derivative 当前误差/过去误差/误差的变化趋势 K p ⋅ e K_{\mathrm{p}}\cdot e Kp​⋅e:比…...

SSM养老院综合服务系统----计算机毕业设计

项目介绍 该项目为后台管理项目,分为管理员与护工两种角色; 管理员角色包含以下功能: 管理员登录,个人资料密码管理,用户管理,床位类型管理,床位管理,护工管理,老人管理,咨询登记管理,预约登记管理,老人健康信息管理,费用管理等功能。 护…...

广州求职招聘(找工作)去哪里找比较好

在广州找工作,可以选择“吉鹿力招聘网”这个平台。它是一个号称直接和boss聊的互联网招聘神器,同时,“吉鹿力招聘网”作岗位比较齐全,企业用户也多,比较全面。在“吉鹿力招聘网”历即可投递岗位。 广州找工作上 吉鹿力…...

ARM NEON 指令

NEON指令 按照操作数类型可以分为正常指令、宽指令、窄指令、饱和指令、长指令。 正常指令:生成大小相同且类型通常与操作数向量相同到结果向量。长指令:对双字向量操作数执行运算,生产四字向量到结果。所生成的元素一般是操作数元素宽度到…...

Open3D 最小二乘拟合平面——拉格朗日乘子法

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接Open3D 最小二乘拟合平面——拉格朗日乘子法。爬虫自重。 一、算法原理 设拟合出的平面方程为: a x + b y +...

Rockchip平台Android应用预安装功能(基于Android13)

Rockchip平台Android应用预安装功能(基于Android13) 1. 预安装应用类型 Android上的应用预安装功能,主要是指配置产品时,根据厂商要求,将事先准备好的第三方应用预置进Android系统。预安装分为以下几种类型: 安装不可卸载应用安…...

vue项目表单使用正则过滤ip、手机号

import useFormValidate from /hooks/useFormValidatesetup(props, { emit }) {const { validateName, validateIPAndPort } useFormValidate()const state reactive({workFaceInfo: props.info?.id ? props.info : {},sysTypeData: props.sysType,formRules: {name: [{req…...

vscode编译调试sln工程

使用msvc工具链 vscode配置调用visual studio的编译和调试环境_vscode用vs-CSDN博客 将vscode打造无敌的IDE(14) tasks.json和launch.json配置详解,随心所欲添加自动化任务_tasks.json详解-CSDN博客 通过命令行使用 Microsoft C 工具集 | Microsoft Learn 编译…...

Android 车联网——CarManager管理器(四)

上篇文章介绍了CarPropertyService 的使用,这一篇我们来看一下 Android Automotive OS 中一些子模块如何使用 CarPropertyManager。 一、管理器调用 ICarImpl 源码位置:/packages/services/Car/service/src/com/android/car/ICarImpl.java @Override public IBinder getC…...

C# OpenCvSharp读取rtsp流录制mp4可分段保存

软件界面: 测试环境: VS2019 .NET Framework 4.7.2 OpencvSharp4.8.0 输入RTSP流地址即可拉取RTSP流,支持抓拍和录制RTSP流视频,且支持支持按固定时间保存,比如我想5分钟保存一个视频,设置保存间隔为30…...

Maven的心脏:深入解析settings.xml配置文件

Maven作为Java世界中最著名的构建工具之一,其灵魂所在无疑是那些配置文件。在这些配置文件中,settings.xml扮演着至关重要的角色。今天,我们就来深入剖析这个Maven的心脏部件,看看它如何为我们的项目搏动生命。 一、Maven settin…...

uni静态资源引入及css图片图标引用规范

1、页面组件引入 单页面中的组件引入需经过导入——注册——使用三个步骤&#xff1b; <template><view><!-- 3.使用组件 --><uni-rate text"1"></uni-rate></view> </template> <script>// 1. 导入组件import un…...

API 开放平台项目(已整理,已废弃)

项目大纲 前端 React 18Ant Design Pro 5.x 脚手架Ant Design & Procomponents 组件库Umi 4 前端框架OpenAPI 前端代码生成 后端 Java Spring BootMySQL 数据库MyBatis-Plus 及 MyBatis X 自动生成API 签名认证&#xff08;Http 调用&#xff09;Spring Boot Starter&#…...

魔棒无人直播系统有哪些优势?

随着科技的发展&#xff0c;越来越多新鲜事物的出现&#xff0c;它们代替了我们做很多的事情&#xff0c;开始解放着自己的双手&#xff0c;其中&#xff0c;无人直播的出现&#xff0c;就让直播变得更加简单。 因为是无人直播&#xff0c;所以全程不需要真人出镜&#xff0c;…...

[Flutter]WindowsOS中相关配置

Flutter项目在Windows平台上如何配置 目录 Flutter项目在Windows平台上如何配置 写在开头 正文 1、OS准备 2、编译环境准备 ① 下载AndroidStudio ② 下载dart ③ 下载flutter ④ 下载并安装VS ⑤ 在AS中配置dart和flutter 3、配置中遇到的问题 写在结尾 写在开头…...

[C语言]时间戳

时间戳的概念 时间戳就是定义一个时间点作为0秒, 之后每过一秒依此加一, 将当前的时间戳换算成年月日, 再加上起点, 获得的就是现在时刻的时间. 根据地球时区的偏移, 比如北京时间是东八区, 做一个偏移量的加减. 0起点: 1900年1月1日0时0分0秒. 0偏移地点: 英国伦敦 时间戳…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

ZYNQ学习记录FPGA(一)ZYNQ简介

一、知识准备 1.一些术语,缩写和概念&#xff1a; 1&#xff09;ZYNQ全称&#xff1a;ZYNQ7000 All Pgrammable SoC 2&#xff09;SoC:system on chips(片上系统)&#xff0c;对比集成电路的SoB&#xff08;system on board&#xff09; 3&#xff09;ARM&#xff1a;处理器…...

Linux 下 DMA 内存映射浅析

序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存&#xff0c;但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程&#xff0c;可以参考这篇文章&#xff0c;我觉得写的非常…...