【zookeeper】zookeeper的shell操作

Zookeeper的shell操作

本章节将分享一些zookeeper客服端的一些命令,实验操作有助于理解zookeeper的数据结构。

Zookeeper命令工具

在前一章的基础上,在启动Zookeeper服务之后,输入以下命令,连接到Zookeeper服务。连接成功之后,系统会输出Zookeeper的相关环境及配置信息,并在屏幕输出“welcome to Zookeeper!”等信息,倒数几行的位置,如下:

[root@k8s-m1 bin]# zkCli.sh -server k8s-m1:2181
Connecting to k8s-m1:2181
2023-08-31 16:36:48,125 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.12-e5259e437540f349646870ea94dc2658c4e44b3b, built on 03/27/2018 03:55 GMT
2023-08-31 16:36:48,129 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=k8s-m1
2023-08-31 16:36:48,130 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.8.0_65
2023-08-31 16:36:48,132 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/opt/jdk1.8.0_65/jre
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/opt/zookeeper-3.4.12/bin/../build/classes:/opt/zookeeper-3.4.12/bin/../build/lib/*.jar:/opt/zookeeper-3.4.12/bin/../lib/slf4j-log4j12-1.7.25.jar:/opt/zookeeper-3.4.12/bin/../lib/slf4j-api-1.7.25.jar:/opt/zookeeper-3.4.12/bin/../lib/netty-3.10.6.Final.jar:/opt/zookeeper-3.4.12/bin/../lib/log4j-1.2.17.jar:/opt/zookeeper-3.4.12/bin/../lib/jline-0.9.94.jar:/opt/zookeeper-3.4.12/bin/../lib/audience-annotations-0.5.0.jar:/opt/zookeeper-3.4.12/bin/../zookeeper-3.4.12.jar:/opt/zookeeper-3.4.12/bin/../src/java/lib/*.jar:/opt/zookeeper-3.4.12/bin/../conf:.:/opt/jdk1.8.0_65/lib/dt.jar:/opt/jdk1.8.0_65/lib/tools.jar
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=3.10.0-957.el7.x86_64
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
2023-08-31 16:36:48,134 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/opt/apache-zookeeper-3.7.1-bin/bin
2023-08-31 16:36:48,135 [myid:] - INFO  [main:ZooKeeper@441] - Initiating client connection, connectString=k8s-m1:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@5c29bfd
Welcome to ZooKeeper!
2023-08-31 16:36:48,166 [myid:] - INFO  [main-SendThread(k8s-m1:2181):ClientCnxn$SendThread@1028] - Opening socket connection to server k8s-m1/192.168.2.140:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2023-08-31 16:36:48,241 [myid:] - INFO  [main-SendThread(k8s-m1:2181):ClientCnxn$SendThread@878] - Socket connection established to k8s-m1/192.168.2.140:2181, initiating session
[zk: k8s-m1:2181(CONNECTING) 0] 2023-08-31 16:36:48,314 [myid:] - INFO  [main-SendThread(k8s-m1:2181):ClientCnxn$SendThread@1302] - Session establishment complete on server k8s-m1/192.168.2.140:2181, sessionid = 0x1002552fac20000, negotiated timeout = 30000WATCHER::WatchedEvent state:SyncConnected type:None path:null[zk: k8s-m1:2181(CONNECTED) 0]

输入help之后,屏幕会输出可用的Zookeeper命令,如下所示

[zk: k8s-m1:2181(CONNECTED) 0] 
[zk: k8s-m1:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd argsstat path [watch]set path data [version]ls path [watch]delquota [-n|-b] pathls2 path [watch]setAcl path aclsetquota -n|-b val pathhistory redo cmdnoprintwatches on|offdelete path [version]sync pathlistquota pathrmr pathget path [watch]create [-s] [-e] path data acladdauth scheme authquit getAcl pathclose connect host:port        

使用Zookeeper命令的简单操作

(1)使用ls命令查看当前Zookeeper中所包含的内容:ls /

[zk: k8s-m1:2181(CONNECTED) 1] ls /
[zookeeper]

(2)创建一个新的Znode节点"aa",以及和它相关字符,执行命令:create /aa “first zookeeper”,默认是不带编号的

[zk: k8s-m1:2181(CONNECTED) 2] create /aa "first zookeeper"
Created /aa

创建带编号的持久性节点"bb",

[zk: k8s-m1:2181(CONNECTED) 3] create -s /bb "bb"
Created /bb0000000006

创建不带编号的临时节点"cc"

[zk: k8s-m1:2181(CONNECTED) 4] create -e /cc "cc"
Created /cc

创建带编号的临时节点"dd"

[zk: k8s-m1:2181(CONNECTED) 5] create -s -e /dd "dd"
Created /dd0000000008

(3) 再次使用ls命令来查看现在Zookeeper的中所包含的内容:ls /

[zk: k8s-m1:2181(CONNECTED) 6] ls /                 
[aa, bb0000000006, cc, dd0000000008, zookeeper]

此时看到,上面的四个节点aa/bb/cc/dd都已经被创建。

关闭本次连接回话session,并直接使用connect重新打开一个连接。
[zk: k8s-m1:2181(CONNECTED) 7] close
2023-08-31 20:17:54,078 [myid:] - INFO  [main:ZooKeeper@687] - Session: 0x1002552fac20002 closed
[zk: k8s-m1:2181(CLOSED) 8] 2023-08-31 20:17:54,084 [myid:] - INFO  [main-EventThread:ClientCnxn$EventThread@521] - EventThread shut down for session: 0x1002552fac20002[zk: k8s-m1:2181(CLOSED) 8] ls /
Not connected
[zk: k8s-m1:2181(CLOSED) 9] connect  k8s-m1:2181 
2023-08-31 20:18:22,837 [myid:] - INFO  [main:ZooKeeper@441] - Initiating client connection, connectString=k8s-m1:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@5680a178
[zk: k8s-m1:2181(CONNECTING) 10] 2023-08-31 20:18:22,841 [myid:] - INFO  [main-SendThread(k8s-m1:2181):ClientCnxn$SendThread@1028] - Opening socket connection to server k8s-m1/192.168.2.140:2181. Will not attempt to authenticate using SASL (unknown error)
2023-08-31 20:18:22,842 [myid:] - INFO  [main-SendThread(k8s-m1:2181):ClientCnxn$SendThread@878] - Socket connection established to k8s-m1/192.168.2.140:2181, initiating session
2023-08-31 20:18:22,863 [myid:] - INFO  [main-SendThread(k8s-m1:2181):ClientCnxn$SendThread@1302] - Session establishment complete on server k8s-m1/192.168.2.140:2181, sessionid = 0x1002552fac20003, negotiated timeout = 30000WATCHER::WatchedEvent state:SyncConnected type:None path:null

重新查看,临时节点已经随着上一次的会话关闭自动删除了

[zk: k8s-m1:2181(CONNECTED) 10] ls  /
[aa, bb0000000006, zookeeper]
[zk: k8s-m1:2181(CONNECTED) 11] 

(4)使用get命令来确认第二步中所创建的Znode是否包含我们创建的字符串,执行命令:get /aa

[zk: k8s-m1:2181(CONNECTED) 11]  get /aa
first zookeeper
cZxid = 0x20000000e
ctime = Thu Aug 31 19:53:59 CST 2023
mZxid = 0x20000000e
mtime = Thu Aug 31 19:53:59 CST 2023
pZxid = 0x20000000e
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 15
numChildren = 0
[zk: k8s-m1:2181(CONNECTED) 12] 

(5)接下来通过set命令来对zk所关联的字符串进行设置,执行命令:set /aa haha123

[zk: k8s-m1:2181(CONNECTED) 12] set /aa hello  
cZxid = 0x20000000e
ctime = Thu Aug 31 19:53:59 CST 2023
mZxid = 0x200000014
mtime = Thu Aug 31 20:20:39 CST 2023
pZxid = 0x20000000e
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0
[zk: k8s-m1:2181(CONNECTED) 13]

(6)再次使用get命令来查看,上次修改的内容,执行命令:get /aa

[zk: k8s-m1:2181(CONNECTED) 13]  get /aa     
hello
cZxid = 0x20000000e
ctime = Thu Aug 31 19:53:59 CST 2023
mZxid = 0x200000014
mtime = Thu Aug 31 20:20:39 CST 2023
pZxid = 0x20000000e
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0

(7)下面我们将刚才创建的Znode删除,执行命令:delete /aa

[zk: k8s-m1:2181(CONNECTED) 14] delete /aa

(8) 最后再次使用ls命令查看Zookeeper中的内容,执行命令:ls /

[zk: k8s-m1:2181(CONNECTED) 15] ls  /        
[bb0000000006, zookeeper]

经过验证,zk节点aa已经删除。
(9) 退出,执行命令:quit

[zk: k8s-m1:2181(CONNECTED) 17] quit 
Quitting...
2023-08-31 20:22:07,820 [myid:] - INFO  [main:ZooKeeper@687] - Session: 0x1002552fac20003 closed
2023-08-31 20:22:07,820 [myid:] - INFO  [main-EventThread:ClientCnxn$EventThread@521] - EventThread shut down for session: 0x1002552fac20003
[root@k8s-m1 bin]# 

查看状态信息

查看一个文件的状态信息

[zk: k8s-m1:2181(CONNECTED) 0] ls /
[bb0000000006, zookeeper]
[zk: k8s-m1:2181(CONNECTED) 1] stat /bb
Node does not exist: /bb
[zk: k8s-m1:2181(CONNECTED) 2] stat /bb0000000006
cZxid = 0x20000000f
ctime = Thu Aug 31 19:56:17 CST 2023
mZxid = 0x20000000f
mtime = Thu Aug 31 19:56:17 CST 2023
pZxid = 0x20000000f
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0

详细解释:

zxid: 一个事务编号,zookeeper集群内部的所有事务,都有一个全局的唯一的顺序的编号。
  它由两部分组成: 就是一个 64位的长整型 long
  高32位: 用来标识leader关系是否改变,如 0x2  
  低32位: 用来做当前这个leader领导期间的全局的递增的事务编号,如上面的0000000f

状态属性说明
cZxid数据节点创建时的事务ID
ctime数据节点创建时的时间
mZxid数据节点最后一次更新时的事务ID
mtime数据节点最后一次更新时的时间
pZxid数据节点的子节点列表最后一次被修改(是子节点列表变更,而不是子节点内容变更)时的事务ID
cversion子节点的版本号
dataVersion数据节点的版本号
aclVersion数据节点的ACL版本号
ephemeralOwner如果节点是临时节点,则表示创建该节点的会话的SessionID;如果节点是持久节点,则该属性值为0
dataLength数据内容的长度
numChildren数据节点当前的子节点个数

(1)修改节点a的数据,mZxid、dataVersion、dataLength 存储信息发生变化

[zk: k8s-m1:2181(CONNECTED) 10] ls /
[bb0000000006, zookeeper]
[zk: k8s-m1:2181(CONNECTED) 12] create /aa "first zookeeper"
Created /aa
[zk: k8s-m1:2181(CONNECTED) 13] ls    /
[bb0000000006, aa, zookeeper]
[zk: k8s-m1:2181(CONNECTED) 14] set /aa 'aa'
cZxid = 0x200000019
ctime = Thu Aug 31 20:27:57 CST 2023
mZxid = 0x20000001a
mtime = Thu Aug 31 20:28:32 CST 2023
pZxid = 0x200000019
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0
[zk: k8s-m1:2181(CONNECTED) 16] 

(2)创建新的节点bb,状态信息都会发生变化,zxid的事物ID也会增加

[zk: k8s-m1:2181(CONNECTED) 18] create /bb "second zookeeper"
Created /bb
[zk: k8s-m1:2181(CONNECTED) 19] stat /bb
cZxid = 0x20000001b
ctime = Thu Aug 31 20:31:06 CST 2023
mZxid = 0x20000001b
mtime = Thu Aug 31 20:31:06 CST 2023
pZxid = 0x20000001b
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 16
numChildren = 0

(3)在aa节点下面新增节点bb,pZxid、cversion、numChildren 发生改变

[zk: k8s-m1:2181(CONNECTED) 21] create /aa/bb 'aabb'
Created /aa/bb
[zk: k8s-m1:2181(CONNECTED) 22] stat /aa            
cZxid = 0x200000019
ctime = Thu Aug 31 20:27:57 CST 2023
mZxid = 0x20000001a
mtime = Thu Aug 31 20:28:32 CST 2023
pZxid = 0x20000001c
cversion = 1
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 1

(4)ephemeralOwner 持久性的节点信息是0x0临时的几点信息是本次会话的sessionid,如图
在这里插入图片描述
(5) 查看leader并将其干掉,此时将选择另一台机器成为leader,重新创建一个文件ff,此时发现czxid的前3位和之前发生变化,说明换了leader。其实前3位应该就是我们设置的serverid值。

#k8s-m2为leader
[root@k8s-m2 tmp]# /opt/apache-zookeeper-3.7.1-bin/bin/zkServer.sh  status
ZooKeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
Mode: leader
[root@k8s-m2 tmp]# /opt/apache-zookeeper-3.7.1-bin/bin/zkServer.sh  stop
ZooKeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED#在原来的界面继续操作
[zk: k8s-m1:2181(CONNECTED) 2] create /f 'ff'                   
Created /f
[zk: k8s-m1:2181(CONNECTED) 3] stat /f
cZxid = 0x300000001
ctime = Thu Aug 31 20:40:25 CST 2023
mZxid = 0x300000001
mtime = Thu Aug 31 20:40:25 CST 2023
pZxid = 0x300000001
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0
[zk: k8s-m1:2181(CONNECTED) 4] 

更多关于zookeeper的知识分享,请前往博客主页。编写过程中,能力有限难免出现差错,敬请指正

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ROS】例说mapserver静态地图参数(对照Rviz、Gazebo环境)

文章目录 例说mapserver静态地图参数1. Rviz中显示的地图2. mapserver保存地图详解3. 补充实验 例说mapserver静态地图参数 1. Rviz中显示的地图 在建图过程中&#xff0c;rviz会显示建图的实时情况&#xff0c;其输出来自于SLAM&#xff0c;浅蓝色区域为地图大小&#xff0c…

SeaTunnel扩展Transform插件,自定义转换插件

代码结构 在seatunnel-transforms-v2中新建数据包名&#xff0c;新建XXXTransform&#xff0c;XXXTransformConfig&#xff0c;XXXTransformFactory三个类 自定义转换插件功能说明 这是个适配KafkaSource的转换插件&#xff0c;接收到的原文格式为&#xff1a; {"path&…

ARP欺骗

1.定义 ARP欺骗&#xff08;英语&#xff1a;ARP spoofing&#xff09;&#xff0c;又称ARP毒化&#xff08;ARP poisoning&#xff0c;网络上多译为ARP病毒&#xff09;或ARP攻击&#xff0c;是针对以太网地址解析协议&#xff08;ARP&#xff09;的一种攻击技术&#xff0c;…

【GAMES202】Real-Time Global Illumination(in 3D)—实时全局光照(3D空间)

一、SH for Glossy transport 1.Diffuse PRT回顾 上篇我们介绍了PRT&#xff0c;并以Diffuse的BRDF作为例子分析了预计算的部分&#xff0c;包括Lighting和Light transport&#xff0c;如上图所示。 包括我们还提到了SH&#xff0c;可以用SH的有限阶近似拟合球面函数&#xff…

PHP8函数包含文件-PHP8知识详解

在php中&#xff0c;可以使用以下函数来包含其他文件&#xff1a;include()、include_once()、require()、require_once()。 1、include(): 包含并运行指定文件中的代码。如果文件不存在或包含过程中出现错误&#xff0c;将发出警告。 <?php include filename.php; ?>…

【mybatis-plus进阶】多租户场景中多数据源自定义来源dynamic-datasource实现

Springbootmybatis-plusdynamic-datasourceDruid 多租户场景中多数据源自定义来源dynamic-datasource实现 文章目录 Springbootmybatis-plusdynamic-datasourceDruid 多租户场景中多数据源自定义来源dynamic-datasource实现0.前言1. 作者提供了接口2. 基于此接口的抽象类实现自…

macOS通过钥匙串访问找回WiFi密码

如果您忘记了Mac电脑上的WiFi密码&#xff0c;可以通过钥匙串访问来找回它。具体步骤如下&#xff1a; 1.打开Mac电脑的“启动台”&#xff0c;然后在其他文件中找到“钥匙串访问”。 2.运行“钥匙串访问”应用程序&#xff0c;点击左侧的“系统”&#xff0c;然后在右侧找到…

Gin学习记录3——模版与渲染

模版与渲染 一. 返回二. 模版2.1 基础模版2.2 同名模版2.3 模版继承2.4 模版语法 一. 返回 如果只是想返回数据&#xff0c;可以使用以下函数&#xff1a; func (c *Context) JSON(code int, obj any) func (c *Context) JSONP(code int, obj any) func (c *Context) String(…

Shotcut for Mac:一款强大而易于使用的视频编辑器

随着数码相机的普及&#xff0c;视频编辑已成为我们日常生活的一部分。对于许多专业和非专业用户来说&#xff0c;找到一个易于使用且功能强大的视频编辑器是至关重要的。今天&#xff0c;我们将向您介绍Shotcut——一款专为Mac用户设计的强大视频编辑器。 什么是Shotcut&…

POI基于Excel模板导出数据

1、基于模板导出列表数据 1.1、需求 注意&#xff1a;使用附件的形式下载&#xff0c;前端访问必须通过window.open(),否则附件可能无法下载。 按照以下样式导出excel 1.2、思路 首先准备一个excel模板&#xff0c;这个模板把复杂的样式和固定的内容先准备好并且放入到项…

佳作导读 | 《C++ Core Guidelines》

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; 佳作导读 | 《C Core Guidelines》 《C Core Guidelines》由Bjarne Stroustrup和Herb Sutter等共同编写关于使用C编程语言的指南&#xff1b;旨在提供关于如何使用C进…

在Ubuntu上安装CUDA和cuDNN以及验证安装步骤

在Ubuntu上安装CUDA和cuDNN以及验证安装步骤 本教程详细介绍了如何在Ubuntu操作系统上安装CUDA&#xff08;NVIDIA的并行计算平台&#xff09;和cuDNN&#xff08;深度神经网络库&#xff09;&#xff0c;以及如何验证安装是否成功。通过按照这些步骤操作&#xff0c;您将能够…

小黑受到了未来的焦虑,周四继续参加团跑活动仰山跑,跑奥森的坡,越跑越上瘾更加热爱生活的leetcode之旅:LCR 008. 长度最小的子数组

小黑代码1 class Solution:def minSubArrayLen(self, target: int, nums: List[int]) -> int:# 数组长度n len(nums)# 双指针head 0tail 0# 中间变量sum_ 0# 结果变量res n1# 开始双指针迭代while tail < n:sum_ nums[tail]tail 1while sum_ > target:if tail…

0010Java程序设计-springboot+vue影院售票系统设计与实现

摘 要目 录系统实现开发环境 摘 要 看电影已经成为了人们生活中不可缺少的一部分&#xff0c;电影院售票及管理系统是电影院的日常管理及售票任务的核心&#xff0c; 在电影院中&#xff0c; 工作人员并非只是放映电影&#xff0c; 还有诸如票房统计、影片放映、影片场次安排、…

动态规划:路径和子数组问题(C++)

动态规划&#xff1a;路径和子数组问题 路径问题1.不同路径&#xff08;中等&#xff09;2.不同路径II&#xff08;中等&#xff09;3.下降路径最⼩和&#xff08;中等&#xff09;4.地下城游戏&#xff08;困难&#xff09; 子数组问题1.最大子数组和&#xff08;中等&#xf…

一篇文章教会你SpringMVC

目录 1.什么是SpringMVC 2.SpringMVC工作流程 3.SpringMVC核心组件 4.SpringMVC的配置流程 4.1导入POM依赖 4.2在WEB-INF下添加springmvc-servlet.xml(spring-mvc.xml) 4.3 修改web.xml 创建一个Controller用来存放web层的方法和内容 创建一个前端页面用来做测试展示 前言…

04 Linux补充|C/C++

目录 Linux补充 C语⾔ C语言中puts和printf的区别&#xff1f; Linux补充 (1)ubuntu安装ssh服务端openssh-server命令&#xff1a; ubuntu安装后默认只有ssh客户端&#xff0c;只能去连其它ssh服务器&#xff1b;其它客户端想要连接这个ubuntu系统&#xff0c;需要安装部署…

进制转换(二进制、八进制、十六进制、十进制)

一、进制表示 二进制&#xff1a;每一位只有两种符号表示 -> 0,1 例如 (101011)₂&#xff0c;也可写作101011B&#xff0c;其中B是Binary英文的缩写。八进制&#xff1a; 每一位有8种符号表示(0~7)&#xff0c;例如(1652)₈&#xff0c;也可写作1652O&#xff0c;其中O是O…

STL常用容器 (C++核心基础教程之STL容器详解)String的API

在C的标准模板库&#xff08;STL&#xff09;中&#xff0c;有多种容器可供使用。以下是一些常见的容器类型&#xff1a; 序列容器&#xff08;Sequential Containers&#xff09;&#xff1a; std::vector&#xff1a;动态数组&#xff0c;支持快速随机访问。 std::list&…

CS420 课程笔记 P7 - 虚拟内存 多级指针寻址

文章目录 IntroPointersMemory leaksPointer pathPointer scanningExample! Intro 上节课我们学习了静态地址&#xff0c;这节课我们将着手关注动态地址&#xff0c;我们需要了解一个叫做指针的东西 Pointers 简单地说&#xff0c;指针是对象之间的单向连接 Pointers are co…