主頁 >  其他 > Redis主從復制,哨兵模式和集群模式

Redis主從復制,哨兵模式和集群模式

2022-12-09 07:42:06 其他

一、主從復制

1.1主從復制-哨兵-集群

主從復制:主從復制是高可用Redis的基礎,哨兵和集群都是在主從復制基礎上實作高可用的,主從復制主要實作了資料的多機備份,以及對于讀操作的負載均衡和簡單的故障恢復,缺陷:故障恢復無法自動化;寫操作無法負載均衡;存盤能力受到單機的限制
哨兵:在主從復制的基礎上,哨兵實作了自動化的故障恢復,缺陷:寫操作無法負載均衡;存盤能力受到單機的限制;哨兵無法對從節點進行自動故障轉移,在讀寫分離場景下,從節點故障會導致讀服務不可用,需要對從節點欄位外的監控、切換操作
集群:通過集群,Redis解決了寫操作無法負載均衡,以及存盤能力受到單機限制的問題,實作了較為完善的高可用方案

1.2主從復制的概念

  • 主從復制,是指將一臺 Redis 服務器的資料,復制到其他的 Redis 服務器,前者稱為主節點(Master),后者稱為從節點(Slave);資料的復制是單向的,只能由主節點到從節點
  • 默認情況下,每臺 Redis 服務器都是主節點;且一個主節點可以有多個從節點 (或沒有從節點),但一個從節點只能有一個主節點

1.3主從復制的作用

① 資料冗余主從復制實作了資料的熱備份,是持久化之外的一種資料冗余方式
② 故障恢復當主節點出現問題時,可以由從節點提供服務,實作快速的故障恢復;實際上是一種服務的冗余
③ 負載均衡在主從復制的基礎上,配合讀寫分離,可以由主節點提供寫服務,由從節點提供讀服務 (即寫 Redis 資料時應用連接主節點,讀 Redis 資料時應用連接從節點),分擔服務器負載;尤其是在寫少讀多的場景下,通過多個從節點分擔讀負載,可以大大提高Redis服務器的并發量
④ 高可用基石除了上述作用以外,主從復制還是哨兵和集群能夠實施的基礎,因此說主從復制是Redis高可用的基礎

1.4主從復制流程

① 若啟動一個Slave機器行程,則它會向Master機器發送一個“sync command" 命令,請求同步連接
② 無論是第一次連接還是重新連接,Master機器 都會啟動一個后臺行程,將資料快照保存到資料檔案中(執行rdb操作) ,同時 Master 還會記錄修改資料的所有命令并快取在資料檔案中
③ 后臺行程完成快取操作之后,Master 機器就會向 Slave 機器發送資料檔案,Slave 端機器將資料檔案保存到硬碟上,然后將其加載到記憶體中,接著 Master 機器就會將修改資料的所有操作一并發送給 Slave 端機器,若 Slave 出現故障導致宕機,則恢復正常后會自動重新連接
④ Master機器收到 Slave 端機器的連接后,將其完整的資料檔案發送給 Slave 端機器,如果 Mater 同時收到多個 Slave 發來的同步請求,則 Master 會在后臺啟動一個行程以保存資料檔案,然后將其發送給所有的 Slave 端機器,確保所有的 Slave 端機器都正常

1.5部署Redis 主從復制步驟

(1)環境準備

master節點:192.168.10.100 Redis
slave1節點:192.168.10.101 Redis
slave2節點:192.168.10.102 Redis

(2)首先要搭建redis,并關閉防火墻

yum install -y gcc gcc-c++ make
#將redis-5.0.7.tar.gz的壓縮包上傳到/opt中
tar zxvf redis-5.0.7.tar.gz -C /opt/
cd /opt/redis-5.0.7/
make
make PREFIX=/usr/local/redis install
cd /opt/redis-5.0.7/utils
./install_server.sh
......
Please select the redis executable path [/usr/loca1/bin/redis-server]  /usr/local/redis/bin/redis-server
 
ln -s /usr/local/redis/bin/* /usr/local/bin/
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

(3)修改Redis 組態檔(Master節點操作)

vim /etc/redis/6379.conf
bind 0.0.0.0                       #70行,注釋掉bind項,或修改為0.0.0.0,默認監聽所有網卡
daemonize yes                      #137行,開啟守護行程
logfile /var/log/redis_6379.log            #172行,指定日志檔案目錄
dir /var/lib/redis/6379                    #264行,指定作業目錄
appendonly yes                     #700行,開啟AOF持久化功能
 
/etc/init.d/redis_6379 restart

(4)修改Redis 組態檔(Slave節點操作)

vim /etc/redis/6379.conf
bind 0.0.0.0                         #70行,修改監聽地址為0.0.0.0
daemonize yes                        #137行,開啟守護行程
logfile /var/log/redis_6379.log                  #172行,指定日志檔案目錄
dir /var/lib/redis/6379                          #264行,指定作業目錄
replicaof 192.168.10.100 6379                    #287行,取消注釋并指定要同步的Master節點IP和埠
appendonly yes                       #700行,開啟AOF持久化功能
 
/etc/init.d/redis_6379 restart

(5)驗證主從效果

在Master節點上看日志:
tail -f /var/log/redis_6379.log
 
在Master節點上驗證從節點:
redis-cli
127.0.0.1:6379> info replication

1.6實體操作:部署Redis 主從復制

(1)首先要搭建redis,并關閉防火墻

(2)修改Redis 組態檔(Master節點操作)

(3)修改Redis 組態檔(Slave節點操作)

兩個slave節點配置相同:

(4)驗證主從效果:

日志驗證(在Master節點上看日志):

 在Master節點上驗證從節點:

 在slave節點查看key,資料是否同步:

二、哨兵模式

 

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

2.1哨兵模式的原理

哨兵(sentinel) 是一個分布式系統,用于對主從結構中的每臺服務器進行監控,當出現故障時通過投票機制選擇新的Master,并將所有Slave 連接到新的Master,所以整個運行哨兵的集群的數量不得少于3個節點

2.2哨兵模式的作用

  • 監控:哨兵會不斷地檢查主節點和從節點是否運作正常
  • 自動故障轉移:當主節點不能正常作業時,哨兵會開始自動故障轉移操作,它會將失效主節點的其中一個從節點升級為新的主節點,并讓其他從節點改為復制新的主節點
  • 通知(提醒):哨兵可以將故障轉移的結果發送給客戶端

2.3哨兵結構由兩部分組成,哨兵節點和資料節點

  • 哨兵節點:哨兵系統由一個或多個哨兵節點組成,哨兵節點是特殊的 redis 節點,不存盤資料
  • 資料節點:主節點和從節點都是資料節點

哨兵的啟動依賴于主從模式,所以須把主從模式安裝好的情況下再去做哨兵模式,所有節點上都需要部署哨兵模式,哨兵模式會監控所有的Redis 作業節點是否正常,當Master 出現問題的時候,因為其他節點與主節點失去聯系,因此會投票,投票過半就認為這個 Master 的確出現問題,然后會通知哨兵間,然后從Slaves中選取一個作為新的 Master
需要特別注意的是,客觀下線是主節點才有的概念;如果從節點和哨兵節點發生故障,被哨兵主觀下線后,不會再有后續的客觀下線和故障轉移操作

2.4哨兵模式的部署操作步驟

(1)環境準備

master節點: 192.168.10.100 Redis
slave1節點: 192.168.10.101 Redis
slave2節點: 192.168.10.102 Redis

(2)修改Redis哨兵模式的組態檔(所有節點操作)

vim /opt/redis-5.0.7/sentinel.conf
protected-mode no                                              #17行,關閉保護模式
port 26379                                                     #21行,Redis哨兵默認的監聽埠
daemonize yes                                                  #26行,指定sentinel為后臺啟動
logfile "/var/log/sentinel.log"                                #36行,指定日志存放路徑
dir "/var/lib/redis/6379"                                      #65行,指定資料庫存放路徑
sentinel monitor mymaster 192.168.10.100 6379 2                #84行, 修改
指定該哨兵節點監控192.168.10.100:6379這個主節點,該主節點的名稱是mymaster,最后的2的含義與主節點的故障判定有關:至少需要2個哨兵節點同意,才能判定主節點故障并進行故障轉移
sentinel down-after-milliseconds mymaster 30000                #113行,判定服務器down掉的時間周期,默認30000毫秒(30秒)
sentinel failover-timeout mymaster 180000                      #146行,故障節點的最大超時時間為180000 (180秒 )

(3)啟動哨兵模式

注意:先啟master,再啟slave
cd /opt/redis-5.0.7/
redis-sentinel sentinel.conf &

(4)查看哨兵資訊

redis-cli -p 26379 info Sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.10.100:6379,slaves=2,sentinels=3

(5)故障模擬

#查看redis-server行程號(在Master 上進行):
ps -ef | grep redis
5 S root      57521      1  0  80   0 - 39869 ep_pol 15:31 ?        00:00:02 /usr/local/redis/bin/redis-server 0.0.0.0:6379
5 S root      57951      1  0  80   0 - 38461 ep_pol 16:00 ?        00:00:01 redis-sentinel *:26379 [sentinel]
0 R root      58035  15559  0  80   0 - 28169 -      16:08 pts/2    00:00:00 grep --color=auto redis
 
#殺死 Master 節點上redis-server的行程號
kill -9 57521      #Master節點上redis-server的行程號
 
#驗證結果,查看master是轉換至從服務器
tail -f /var/log/sentinel.log
 
#在Slave1上查看是否轉換成功
redis-cli -p 26379 INFO Sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.10.101:6379,slaves=2,sentinels=3

2.5實體操作:哨兵模式的部署

(1)修改Redis哨兵模式的組態檔(所有節點操作)

(2)啟動哨兵模式

(3)查看哨兵資訊

(5)故障模擬

獲取redis的pid,并殺死 Master 節點上redis-server的行程號

 驗證結果,查看master是轉換至從服務

 在Slave1上查看是否轉換成功

三、集群模式

  • 集群,即 Redis Cluster, 是Redis 3. 0開始引入的分布式存盤方案
  • 集群由多個節點(Node) 組成,Redis 的資料分布在這些節點中,集群中的節點分為主節點和從節點;只有主節點負責讀寫請求和集群資訊的維護;從節點只進行主節點資料和狀態資訊的復制
  • 集群中的節點分為主節點和從節點

主節點負責讀寫請求和集群資訊的維護;
從節點只進行主節點資料和狀態資訊的復制

3.1集群的作用,可以歸納為兩點

① 資料磁區:資料磁區(或稱資料分片) 是集群最核心的功能
集群將資料分散到多個節點,一方面突破了 Redis 單機記憶體大小的限制,存盤容量大大增加;另一方面每個主節點都可以對外提供讀服務和寫服務,大大提高了集群的回應能力,
Redis 單機記憶體大小受限問題,在介紹持久化和主從復制時都有提及;例如,如果單機記憶體太大,bgsave 和 bgrewriteaof的 fork 操作可能導致主行程阻塞,主從環境下主機切換時可能導致從節點長時間無法提供服務,全量復制階段主節點的復制緩沖區可能溢位
② 高可用:集群支持主從復制和主節點的自動故障轉移(與哨兵類似) ;當任一節點發生故障時,集群仍然可以對外提供服務

3.2Redis集群的資料分片

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

  • Redis集群有 16384 個哈希槽( 編號0-16383)
  • 集群的每個節點負責一部分哈希槽
  • 每個Key 通過 CRC16 校驗后對16384取余來決定放置哪個哈希槽,通過這個值,去找到對應的插槽所對應的節點,然后直接自動跳轉到這個對應的節點上進行存取操作

3.3以3個節點組成的集群為例

  • 節點A 包含0到5460號哈希槽
  • 節點B 包含5461到10922號哈希槽
  • 節點C 包含10923到16383號哈希槽

3.4Redis集群的主從復制模型

集群中具有A、B、C三個節點,如果節點B失敗了,整個集群就會因缺少5461-10922這個范圍的槽而不可以用,
為每個節點添加一個從節點A1、B1、C1整個集群便有三個Master節點和三個slave節點組成,在節點B失敗后,集群選舉B1位為主節點繼續服務,當B和B1都失敗后,集群將不可用

3.5Redis 集群部署步驟

(1)環境準備

redis的集群一般需要6個節點, 3主3從,
方便起見,這里所有節點在同一臺服務器上模擬: 以埠號進行區分: 3個主節點埠號: 6001/6002/6003, 對應的從節點埠號: 6004/6005/6006  

(2)創建目錄復制組態檔到對應的節點上

cd /etc/redis/
mkdir -p redis-cluster/redis600{1..6}
 
for i in {1..6}
do
cp /opt/redis-5.0.7/redis.conf /etc/redis/redis-cluster/redis600$i
cp /opt/redis-5.0.7/src/redis-cli /opt/redis-5.0.7/src/redis-server /etc/redis/redis-cluster/redis600$i
done

(3)修改主組態檔,設定開啟群集功能

其他5個檔案夾的組態檔以此類推修改,注意6個埠都要不一樣

cd /etc/redis/redis-cluster/redis6001
vim redis.conf
#bind 127.0.0.1         #69行,注釋掉bind項,默認監聽所有網卡
protected-mode no       #88行,修改,關閉保護模式
port 6001               #92行,修改,redis監聽埠
daemonize yes           #136行,開啟守護行程,以獨立行程啟動
appendonly yes          #699行,修改,開啟AOF持久化
cluster-enabled yes     #832行,取消注釋,開啟群集功能
cluster-config-file nodes-6001.conf    #840行,取消注釋,群集名稱檔案設定
cluster-node-timeout 15000             #846行,取消注釋群集超時時間設定
 
#可以寫一個for回圈將6001的檔案復制給6002~6006,這樣就不需要全部一個一個檔案進行修改了
for i in {2..6}
do
/usr/bin/cp -f /etc/redis/redis-cluster/redis6001/redis.conf /etc/redis/redis-cluster/redis600$i/redis.conf
done
#之后稍微修改檔案即可

(4)啟動redis節點

方法一:<br>分別進入那六個檔案夾,執行命令: redis-server redis.conf,來啟動redis節點
cd /etc/redis/redis-cluster/redis6001
redis-server redis.conf
<br>方法二:使用for回圈
for d in {1..6}
do
cd /etc/redis/redis-cluster/redis600$d
redis-server redis.conf
done
 
ps -ef | grep redis

(5)啟動集群

redis-cli --cluster create 127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6003 127.0.0.1:6004 127.0.0.1:6005 127.0.0.1:6006 --cluster-replicas 1
 
#六個實體分為三組,每組一主一從,前面的做主節點,后面的做從節點,下面互動的時候需要輸入yes 才可以創建,
-replicas 1       #表示每個主節點有1個從節點,

(6)測驗群集

redis-cli -p 6001 -c              #加-c引數,節點之間就可以互相跳轉
127.0.0.1:6001> cluster slots     #查看節點的哈希槽編號范圍
1) 1) (integer) 5461
   2) (integer) 10922      #哈希槽編號范圍
   3) 1) "127.0.0.1" .
      2) (integer) 6003       #主節點IP和埠號
      3) " fdca661922216dd69a 63a7c9d3c4540cd6baef44"
   4) 1) "127.0.0.1"
      2) (integer) 6004       #從節點IP和埠號
      3) "a2c0c32aff0f38980accd2b63d6d952812e44740"
2) 1) (integer) 0
   2) (integer) 5460
   3) 1) "127.0.0.1"
      2) (integer) 6001
      3) "0e5873747a2e2 6bdc935bc76c2ba fb19d0a54b11"
   4) 1) "127.0.0.1"
      2) (integer) 6006
      3) "8842ef5584a85005e135fd0ee59e5a0d67b0cf8e"
3) 1) (integer) 10923
   2) (integer) 16383
   3) 1) "127.0.0.1"
      2) (integer) 6002
      3) "81 6ddaa3d14 69540b2f fbcaaf9aa867646846b30"
   4) 1) "127.0.0.1"
      2) (integer) 6005
      3) "f847077bfe6722466e96178ae8cbb09dc8b4d5eb"
 
127.0.0.1:6001> set name zhangsan
-> Redirected to slot [5798] located at 127.0.0.1: 6003
OK
 
127.0.0.1:6001> cluster keyslot name    #查看name鍵的槽編號
(integer) 5798

注:這里用的一臺機子測驗

3.6實體操作:Redis集群部署

(1)創建目錄復制組態檔到對應的節點上

(2)修改主組態檔,設定開啟群集功能

 可以寫一個for回圈將6001的檔案復制給6002~6006,這樣就不需要全部一個一個檔案進行修改;復制之后修改埠號即可(92行和840行)

(3)啟動redis節點

 

(4)啟動集群

(5)測驗群集

 

(6)在其他節點查看

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/539529.html

標籤:其他

上一篇:VMware ESXi 8.0 SLIC & Unlocker 集成網卡驅動和 NVMe 驅動 (集成驅動版)

下一篇:CTPN+CRNN演算法端到端實作文字識別的實戰開發

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more