NoSQL 之 Redis 集群部署

前言:

(1)主從復制:主從復制是高可用Redis的基礎,哨兵和集群都是在主從復制基礎上實現高可用

的。主從復制主要實現了數據的多機備份,以及對于讀操作的負載均衡和簡單的故障恢復。缺陷:

故障恢復無法自動化;寫操作無法負載均衡;存儲能力受到單機的限制。

(2)哨兵:在主從復制的基礎上,哨兵實現了自動化的故障恢復。缺陷:寫操作無法負載均衡;

存儲能力受到單機的限制;哨兵無法對從節點進行自動故障轉移,在讀寫分離場景下,從節點故障

會導致讀服務不可用,需要對從節點做額外的監控、切換操作。

(3)集群:通過集群,Redis解決了寫操作無法負載均衡,以及存儲能力受到單機限制的問題,實

現了較為完善的高可用方案。

一.Redis 主從復制

1.概述

主從復制,是指將一臺Redis服務器的數據,復制到其他的Redis服務器。前者稱為主節點

(Master),后者稱為從節點(Slave);數據的復制是單向的,只能由主節點到從節點。

默認情況下,每臺Redis服務器都是主節點;且一個主節點可以有多個從節點(或沒有從節點),但

一個從節點只能有一個主節點。

2.主從復制的作用

(1)數據冗余:主從復制實現了數據的熱備份,是持久化之外的一種數據冗余方式。

(2)故障恢復:當主節點出現問題時,可以由從節點提供服務,實現快速的故障恢復;實際上是

一種服務的冗余。

(3)負載均衡:在主從復制的基礎上,配合讀寫分離,可以由主節點提供寫服務,由從節點提供

讀服務(即寫Redis數據時應用連接主節點,讀Redis數據時應用連接從節點),分擔服務器負載;

尤其是在寫少讀多的場景下,通過多個從節點分擔讀負載,可以大大提高Redis服務器的并發量。

(4)高可用基石:除了上述作用以外,主從復制還是哨兵和集群能夠實施的基礎,因此說主從復

制是Redis高可用的基礎。

3.主從復制流程

(1)首次同步:當從節點要進行主從復制時,它會發送一個SYNC命令給主節點。主節點收到

SYNC命令后,會執行BGSAVE命令來生成RDB快照文件,并在生成期間使用緩沖區記錄所有寫操

作。

(2)快照傳輸:當主節點完成BGSAVE命令并且快照文件準備好后,將快照文件傳輸給從節點。

主節點將快照文件發送給從節點,并且在發送過程中,主節點會繼續將新的寫操作緩沖到內存中。

(3)追趕復制:當從節點收到快照文件后,會加載快照文件并應用到自己的數據集中。一旦快照

文件被加載,從節點會向主節點發送一個PSYNC命令,以便獲取緩沖區中未發送的寫操作。

(4)增量復制:主節點收到PSYNC命令后,會將緩沖區中未發送的寫操作發送給從節點,從節點

會執行這些寫操作,保證與主節點的數據一致性。此時,從節點已經追趕上了主節點的狀態。

(5)同步:從節點會繼續監聽主節點的命令,并及時執行主節點的寫操作,以保持與主節點的數

據同步。主節點會定期將自己的操作發送給從節點,以便從節點保持最新的數據狀態.

注意:當slave首次同步或者宕機后恢復時,會全盤加載,以追趕上大部隊,即全量復制

二.搭建Redis 主從復制

1.初始化操作

systemctl stop firewalld
systemctl disable --now firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config

2.修改內核參數

vim /etc/sysctl.confvm.overcommit_memory = 1
net.core.somaxconn = 2048sysctl -p

3.安裝redis

yum install -y gcc gcc-c++ make上傳數據包至/opt/目錄,進行tar解壓tar zxvf /opt/redis-7.0.9.tar.gz -C /opt/cd /opt/redis-7.0.9makemake PREFIX=/usr/local/redis install
#由于Redis源碼包中直接提供了 Makefile 文件,所以在解壓完軟件包后,
不用先執行 ./configure 進行配置,可直接執行 make 與 make install 命令進行安裝。

4.創建redis工作目錄

mkdir /usr/local/redis/{conf,log,data}cp /opt/redis-7.0.13/redis.conf /usr/local/redis/conf/useradd -M -s /sbin/nologin redischown -R redis.redis /usr/local/redis/

5.設置環境變量

vim /etc/profile PATH=$PATH:/usr/local/redis/bin		#文件尾部增加一行

6.定義systemd服務管理腳本

vim /usr/lib/systemd/system/redis-server.service[Unit]
Description=Redis Server
After=network.target[Service]
User=redis
Group=redis
Type=forking
TimeoutSec=0
PIDFile=/usr/local/redis/log/redis_6379.pid
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true[Install]
WantedBy=multi-user.target

7.修改 Redis 配置文件(Master節點操作)

vim /usr/local/redis/conf/redis.confbind 192.168.10.10							    #87行,修改監聽地址為自己的IP地址protected-mode no								#111行,將本機訪問保護模式設置noport 6379										#138行,Redis默認的監聽6379端口daemonize yes									#309行,設置為守護進程,后臺啟動pidfile /usr/local/redis/log/redis_6379.pid		#341行,指定 PID 文件logfile "/usr/local/redis/log/redis_6379.log"	#354行,指定日志文件dir /usr/local/redis/data						#504行,指定持久化文件所在目錄requirepass abc123								#1037行,可選,設置redis密碼appendonly yes									#1380行,開啟AOF
systemctl restart redis-server.service

8.修改 Redis 配置文件(Slave節點操作)(兩臺)

vim /usr/local/redis/conf/redis.confbind 0.0.0.0						#87行,修改監聽地址為0.0.0.0或本機自動IP地址protected-mode no								#111行,將本機訪問保護模式設置noport 6379										#138行,Redis默認的監聽6379端口daemonize yes									#309行,設置為守護進程,后臺啟動pidfile /usr/local/redis/log/redis_6379.pid		#341行,指定 PID 文件logfile "/usr/local/redis/log/redis_6379.log"	#354行,指定日志文件dir /usr/local/redis/data						#504行,指定持久化文件所在目錄requirepass abc123								#1037行,可選,設置redis密碼appendonly yes									#1380行,開啟AOF#上面配置和master節點操作相同;下面是slave節點需要多配置的操作replicaof 192.168.10.10 6379					#528行,指定要同步的Master節點IP和端口masterauth abc123								#535行,可選,指定Master節點的密碼,僅在Master節點設置了requirepass

systemctl start redis-server.servicesystemctl restart redis-server.service

9.驗證主從效果

(1)在Master節點上看日志

tail -f /usr/local/redis/log/redis_6379.log

(2)在Master節點上驗證從節點

redis-cli -h masterIP地址 -p 端口號6379 -a 密碼info replication

三.Redis 哨兵模式

1.哨兵模式的概述

主從切換技術的方法是:當服務器宕機后,需要手動一臺從機切換為主機,這需要人工干預,不僅

費時費力而且還會造成一段時間內服務不可用。為了解決主從復制的缺點,就有了哨兵機制。

哨兵的核心功能:在主從復制的基礎上,哨兵引入了主節點的自動故障轉移。

2.哨兵模式的作用

(1)監控:哨兵會不斷地檢查主節點和從節點是否運作正常。

(2)自動故障轉移:當主節點不能正常工作時,哨兵會開始自動故障轉移操作,它會將失效主節

點的其中一個從節點升級為新的主節點,并讓其它從節點改為復制新的主節點。

(3)通知(提醒):哨兵可以將故障轉移的結果發送給客戶端。

哨兵結構由兩部分組成,哨兵節點和數據節點

(1)哨兵節點:哨兵系統由一個或多個哨兵節點組成,哨兵節點是特殊的redis節點,不存儲數

據。

(2)數據節點:主節點和從節點都是數據節點。

3.故障轉移機制

(1)由哨兵節點定期監控發現主節點是否出現了故障

每個哨兵節點每隔1秒會向主節點、從節點及其它哨兵節點發送一次ping命令做一次心跳檢測。如

果主節點在一定時間范圍內不回復或者是回復一個錯誤消息,那么這個哨兵就會認為這個主節點主

觀下線了(單方面的)。當超過半數哨兵節點認為該主節點主觀下線了,這樣就客觀下線了。

(2)當主節點出現故障,此時哨兵節點會通過Raft算法(選舉算法)實現選舉機制共同選舉出一

個哨兵節點為leader,來負責處理主節點的故障轉移和通知。所以整個運行哨兵的集群的數量不得

少于3個節點。

(3)由leader哨兵節點執行故障轉移,過程如下:

【1】將某一個從節點升級為新的主節點,讓其它從節點指向新的主節點;

【2】若原主節點恢復也變成從節點,并指向新的主節點;

【3】通知客戶端主節點已經更換。

需要特別注意的是,客觀下線是主節點才有的概念;如果從節點和哨兵節點發生故障,被哨兵主觀

下線后,不會再有后續的客觀下線和故障轉移操作。

4.主節點的選舉

(1)過濾掉不健康的(已下線的),沒有回復哨兵 ping 響應的從節點。

(2)選擇配置文件中從節點優先級配置最高的。(replica-priority,默認值為100)

(3)選擇復制偏移量最大,也就是復制最完整的從節點。

哨兵的啟動依賴于主從模式,所以須把主從模式安裝好的情況下再去做哨兵模式!!!

四.搭建 Redis 哨兵模式

1.修改 Redis 哨兵模式的配置文件(所有節點操作)

cp /opt/redis-7.0.9/sentinel.conf /usr/local/redis/conf/chown redis.redis /usr/local/redis/conf/sentinel.conf

vim /usr/local/redis/conf/sentinel.conf
protected-mode no									#6行,關閉保護模式port 26379											#10行,Redis哨兵默認的監聽端口daemonize yes										#15行,指定sentinel為后臺啟動pidfile /usr/local/redis/log/redis-sentinel.pid		#20行,指定 PID 文件logfile "/usr/local/redis/log/sentinel.log"			#25行,指定日志存放路徑dir /usr/local/redis/data							#54行,指定數據庫存放路徑sentinel monitor mymaster 192.168.10.10 6379 2		#73行,修改 指定該哨兵節點監控192.168.80.10:6379這個主節點,該主節點的名稱是mymaster,
最后的2的含義與主節點的故障判定有關:至少需要2個哨兵節點同意,才能判定主節點故障并進行故障轉移#sentinel auth-pass mymaster abc123					
#76行,可選,指定Master節點的密碼,僅在Master節點設置了requirepasssentinel down-after-milliseconds mymaster 3000		
#114行,判定服務器down掉的時間周期,默認30000毫秒(30秒)sentinel failover-timeout mymaster 180000			
#214行,同一個sentinel對同一個master兩次failover之間的間隔時間(180秒)

2.編寫VIP漂移腳本,再添加到配置文件中實現調用

(1)編寫腳本

vim master_ip_failover.sh
#!/bin/bash
MASTER_IP=$6LOCAL_IP=$(ifconfig | awk 'NR==2{print $2}')VIP='192.168.10.100'if [ "$MASTER_IP" == "$LOCAL_IP" ];thenifconfig ens33:1 $VIP/24exit 0
elseifconfig ens33:1 $VIP/24 downexit 0
fi
exit 1

(2)將文件復制到兩個從服務器上

scp sentinel.conf master_ip_failover.sh 192.168.10.20:`pwd`scp sentinel.conf master_ip_failover.sh 192.168.10.30:`pwd`

3.啟動哨兵模式

先啟master,再啟slavecd /usr/local/redis/conf/redis-sentinel sentinel.conf &

4.查看哨兵信息

redis-cli  -h IP地址 -p 26379info Sentinel

5.故障模擬

(1)關閉 master 上的 redis 服務

systemctl stop redis-server.service

然后使用監控哨兵配置文件的變化

tail -f redis-sentinel.log

去192.168.10.20查看信息

6.恢復原master服務,

master不會跳轉回來,原master只能作為從服務器

systemctl start redis-server.service

且還要再redist.conf文件中添加master密碼,才能成功連接

master 服務器上查看redis 信息

slave?服務器上查看redis 信息

五.Redis 群集模式

1.集群的概述

集群,即Redis Cluster,是Redis 3.0開始引入的分布式存儲方案。

集群由多組節點(Node)組成,Redis的數據分布在這些節點組中。節點組中的節點分為主節點和從

節點;只有主節點負責讀寫請求和集群信息的維護;從節點只進行主節點數據和狀態信息的復制。

2.集群的作用

(1)高可用:集群支持主從復制和主節點的自動故障轉移(與哨兵類似);當任一節點發生故障

時,集群仍然可以對外提供服務。

(2)數據分區:數據分區(或稱數據分片)是集群最核心的功能。

集群將數據分散到多組節點,一方面突破了Redis單機內存大小的限制,存儲容量大大增加;另一

方面每個主節點都可以對外提供讀服務和寫服務,大大提高了集群的響應能力。

Redis單機內存大小受限問題,在介紹持久化和主從復制時都有提及;例如,如果單機內存太大,

bgsave和bgrewriteaof的fork操作可能導致主進程阻塞,主從環境下主機切換時可能導致從節點長

時間無法提供服務,全量復制階段主節點的復制緩沖區可能溢出。

3.Redis集群的數據分片

Redis集群引入了哈希槽的概念

Redis集群有16384個哈希槽(編號0-16383)

集群的每組節點負責一部分哈希槽

每個Key通過CRC16校驗后對16384取余來決定放置哪個哈希槽,通過這個值,去找到對應的插槽

所對應的節點,然后直接自動跳轉到這個對應的節點上進行存取操作

(1)以3個節點組成的集群為例

節點A包含0到5460號哈希槽

節點B包含5461到10922號哈希槽

節點C包含10923到16383號哈希槽

4.Redis集群的主從復制模型

集群中具有A、B、C三個節點,如果節點B失敗了,整個集群就會因缺少5461-10922這個范圍的槽

而不可以用。

為每個節點添加一個從節點A1、B1、C1整個集群便有三個Master節點和三個slave節點組成,在節

點B失敗后,集群選舉B1位為的主節點繼續服務。當B和B1都失敗后,集群將不可用。

六.搭建Redis 群集模式

redis的集群一般需要6個節點,3主3從。

1.初始化操作

systemctl stop firewalld
systemctl disable --now firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config

2.修改內核參數?

vim /etc/sysctl.confvm.overcommit_memory = 1
net.core.somaxconn = 2048sysctl -p

3.?安裝redis

yum install -y gcc gcc-c++ make上傳數據包至/opt/目錄,進行tar解壓tar zxvf /opt/redis-7.0.9.tar.gz -C /opt/cd /opt/redis-7.0.9makemake PREFIX=/usr/local/redis install
#由于Redis源碼包中直接提供了 Makefile 文件,所以在解壓完軟件包后,
不用先執行 ./configure 進行配置,可直接執行 make 與 make install 命令進行安裝。

4.?創建redis工作目錄

mkdir /usr/local/redis/{conf,log,data}cp /opt/redis-7.0.13/redis.conf /usr/local/redis/conf/useradd -M -s /sbin/nologin redischown -R redis.redis /usr/local/redis/

5. 設置環境變量

vim /etc/profile PATH=$PATH:/usr/local/redis/bin		#文件尾部增加一行

6.定義systemd服務管理腳本?

vim /usr/lib/systemd/system/redis-server.service[Unit]
Description=Redis Server
After=network.target[Service]
User=redis
Group=redis
Type=forking
TimeoutSec=0
PIDFile=/usr/local/redis/log/redis_6379.pid
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true[Install]
WantedBy=multi-user.target

7.?修改 Redis 配置文件

vim /usr/local/redis/conf/redis.confbind 0.0.0.0   							        #87行,修改監聽地址為任意的IP地址protected-mode no								#111行,將本機訪問保護模式設置noport 6379										#138行,Redis默認的監聽6379端口daemonize yes									#309行,設置為守護進程,后臺啟動pidfile /usr/local/redis/log/redis_6379.pid		#341行,指定 PID 文件logfile "/usr/local/redis/log/redis_6379.log"	#354行,指定日志文件dir /usr/local/redis/data						#504行,指定持久化文件所在目錄

?8.開啟群集功能

vim /usr/local/redis/conf/redis.confvim redis.confcluster-enabled yes								#1576行,取消注釋,開啟群集功能cluster-config-file nodes-6001.conf				#1584行,取消注釋,群集名稱文件設置cluster-node-timeout 15000						#1590行,取消注釋群集超時時間設置

9.啟動 redis-server.service 服務

systemctl start redis-server.serviceps -elf | grep redis

到這一步,六臺服務器全部都做一樣的配置!!!

也可以在一臺服務器上進行配置,然后使用scp命令復制到其他服務器

scp redis.conf 192.168.10.20:`pwd`scp redis.conf 192.168.10.30:`pwd`scp redis.conf 192.168.10.40:`pwd`scp redis.conf 192.168.10.50:`pwd`scp redis.conf 192.168.10.60:`pwd`

10.啟動集群和查看集群

redis-cli --cluster create 192.168.10.10:6379 192.168.10.20:6379168.10.60:6379 --cluster-replicas 1redis-cli -h 192.168.10.10 -p 6379 -ccluster nodescluster slots

11.創建數據進行測試

范圍不同,使用的服務器也不同;根據哈希槽范圍,來查看服務器

主負責讀寫。從只負責復制

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/41321.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41321.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41321.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vue3+antd 實現文件夾目錄右鍵菜單功能

原本的目錄結構&#xff1a; 右鍵菜單&#xff1a; 點擊菜單以后會觸發回調&#xff1a; 完整的前端代碼&#xff1a; <template><a-directory-treev-model:expandedKeys"expandedKeys"v-model:selectedKeys"selectedKeys"multipleshow-li…

在 Docker 容器中運行 Vite 開發環境,有這兩個問題要注意

容器化開發給我們帶來了很多便捷&#xff0c;但是在開發環境下也有一些問題要注意&#xff0c;如果不解決這些問題&#xff0c;你的開發體驗不會很好。 容器啟動正常&#xff0c;卻無法訪問 我們用 Docker 啟動一個 Vite Vue3 項目的開發環境后&#xff0c;發現端口日志一切…

計算機如何存儲浮點數

浮點數組成 在計算機中浮點數通常由三部分組成&#xff1a;符號位、指數位、尾數位。IEEE-754中32位浮點數如下&#xff1a; 上圖32bit浮點數包含1bit的符號位&#xff0c;8比特的指數位和23bit的尾數位。對于一個常規浮點數&#xff0c;我們來看看它是如何存儲和計算的。這里…

conda env pip install error:No space left on device

conda 環境 pip install error&#xff1a;No space left on device 文章目錄 conda 環境 pip install error&#xff1a;No space left on device現象1 實驗2 分析和解決辦法 現象 非root用戶的服務器&#xff0c;需要安裝環境&#xff0c;安裝的環境超過2GB sudo pip insta…

醫療機器人中的具身智能進展——自主超聲策略模型的任務編碼和局部探索

醫療機器人一直是具身智能的研究熱點。醫學圖像、醫療觸診、血壓血氧、心率脈搏和生物電信號等多模態生物醫學信息&#xff0c;不斷豐富著醫療機器人的感知范疇。 自主超聲 “自主超聲”屬于具身智能醫療機器人領域中話題度較高的研究方向。作為臨床檢查的重要手段之一&#…

線性系統理論及應用GUI設計及仿真

目錄 1.控制系統的狀態空間模型 1.1.狀態空間模型 1.2 傳遞函數模型 1.3 傳遞函數轉換為狀態空間模型 1.4.狀態空間模型轉換為傳遞函數 1.5.狀態空間模型轉化為約當標準型 2.線性系統的時域分析 2.1.矩陣指數函數的計算 2.2.線型定常連續系統的狀態空間模型求解 3.線…

ubuntu24.04按關鍵字卸載不需要的apt包

使用的時候發現一個imagemagic無法正常讀取文件&#xff0c;試圖卸載 man apt經過嘗試后&#xff0c;發現list的一個神奇關鍵字&#xff0c;用來顯示已安裝的軟件包 sudo apt list --installed | grep image按image關鍵字過濾&#xff1a; 之后按軟件名卸載即可 sudo apt pu…

開關電源——調制模式和工作模式

一、開關電源的調制模式 開關電源作為一種廣泛應用于電子設備中&#xff0c;用于將一定電壓和電流轉換為另一種電壓和電流的技術&#xff0c;以下是開關電源三種常見的調制模式&#xff1a; 脈沖寬度調制&#xff08;Pulse Width Modulation&#xff09; 脈沖頻率調制&#xff…

上升與下降

目錄 開頭程序程序的流程圖關于上升與下降的動畫(程序的效果)結尾 開頭 大家好&#xff0c;我叫這是我58。今天&#xff0c;我們要來看一個關于上升與下降的動畫和這個動畫相關的內容。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #define HIGH 10 #include <stdio.h> #…

高德地圖 key 和安全密鑰使用

參考高德地圖&#xff1a;JS API 安全密鑰使用 高德地圖 key 和安全密鑰使用 一、通過明文方式設置參數查看如下成功后返回的信息 二、通過代理服務器轉發實驗&#xff1a;通過本地地址轉發返回錯的錯誤信息&#xff0c;如下通過正確的項目的的服務地址&#xff0c;返回正常參數…

【VUE基礎】VUE3第一節—vite創建vue3工程

什么是VUE Vue (發音為 /vju?/&#xff0c;類似 view) 是一款用于構建用戶界面的 JavaScript 框架。它基于標準 HTML、CSS 和 JavaScript 構建&#xff0c;并提供了一套聲明式的、組件化的編程模型&#xff0c;幫助你高效地開發用戶界面。無論是簡單還是復雜的界面&#xff0…

Java+MySQL8.0.36+ElementUI數字化產科信息管理系統之”五色管理”

JavaMySQL8.0.36ElementUI數字化產科信息管理系統之”五色管理” 一、數字化產科信息管理系統概述 數字化產科信息管理五色管理是一種基于孕產婦妊娠風險的分類管理方法&#xff0c;通過數字化手段實現孕產婦全周期的健康風險評估與管理。該方法將孕產婦按照風險等級分為綠色、…

DC-DC充放電原理

文章目錄 前言1. 電子器件1.1 電容1.2 電感 2. 升壓電路3. 降壓電路4. 電壓均衡電路4.1 被動均衡4.2 主動均衡 5. 我的疑問5.1 對于升壓電路&#xff0c;怎么設計升壓到多少V后&#xff0c;停止升壓&#xff1f;5.2 什么是等效電阻&#xff1f;5.3 快充是如何實現的&#xff1f…

紅外遙控:智能學習紅外遙控編碼

家用電器如電視、機頂盒、空調等都可以通過紅外遙控&#xff0c;Rainbow專為物聯網、家居智能而設計的硬件&#xff0c;自然在紅外遙控收發方面有很好的支持。 紅外遙控通常是由紅外發光二極管發射一定頻率的載波&#xff0c;通過載波攜帶的控制信息&#xff0c;經過調制的信號…

LightGlue: Local Feature Matching at Light Speed【文獻閱讀】

論文&#xff1a;LightGlue: Local Feature Matching at Light Speed 代碼&#xff1a;https://github.com/cvg/LightGlue 作者&#xff1a;1 ETH Zurich__2 Microsoft Mixed Reality & AI Lab Abstract 提出的LightGlue是一個深度神經網絡用于學習圖像間的局部特征匹配。…

back-end developer 后端開發的一些常識

通俗易懂版 1. 通信協議 1.1 RPC (Remote Procedure Call) 客觀解釋&#xff1a; RPC是一種協議&#xff0c;允許程序通過網絡在不同的計算機上調用函數&#xff0c;就像調用本地函數一樣。RPC隱藏了網絡通信的復雜性&#xff0c;使得遠程服務調用看起來像是本地調用。 現實…

WAIC | 上海人形機器人創新中心 | 最新演講 | 詳細整理

前言 筆者看了7月4號的人形機器人與具身智能發展論壇的直播&#xff0c;并在7月5日到了上海WAIC展會現場參觀。這次大會的舉辦很有意義&#xff0c;聽并看了各家的最新成果&#xff0c;拍了很多照片視頻&#xff0c;部分演講也錄屏了在重復觀看學習 稍后會相繼整理創立穹徹智…

算法系列--分治排序|歸并排序|逆序對的求解

一.基本概念與實現 歸并排序(mergeSort)也是基于分治思想的一種排序方式,思路如下: 分解:根據中間下標mid將數組分解為兩部分解決:不斷執行上述分解過程,當分解到只有一個元素時,停止分解,此時就是有序的合并:合并兩個有序的子區間,所有子區間合并的結果就是原問題的解 歸并…

第一節 網絡安全概述

一.網絡空間安全 網絡空間&#xff1a;一個由信息基礎設施組成相互依賴的網絡。 ---- 海陸空天&#xff08;大海、陸 地、天空、航天&#xff09; 通信保密階段 ---- 計算機安全 ----- 信息系統安全 ----- 網絡空間安全 計算機安全&#xff1a;開始秉持著“嚴于律己&#x…

C語言 指針和數組—指針數組及其在字符串處理中的應用

目錄 問題的提出 問題的解決 回頭看——指針、數組及其他類型的混合 指針數組與指向數組的指針 字符串的排序 問題的提出 問題的解決 回頭看——指針、數組及其他類型的混合 ? 基本數據類型 ? int 、 long 、 char 、 short 、 float 、 double…… ? 數組是一種從…