主頁 >  其他 > CentOS 7.6 redis5.0的持久化作業原理及配置

CentOS 7.6 redis5.0的持久化作業原理及配置

2020-09-15 03:43:44 其他

redis的持久化

    • 一、概述
    • 二、持久化方式
      • 1、RDB 持久化
      • 2、AOF 持久化
    • 三、RDB與AOF對比
      • 1、RDB優缺點
      • 2、AOF優缺點
    • 四、Redis 持久化配置
      • 1、RDB配置
        • (1)前臺命令方式(save)
        • (2)后臺命令方式(bgsave)
        • (3)自動執行(組態檔)
      • 2、AOF配置(默認關閉)
        • 1、重寫功能
          • (1)手動重寫bgrewriteaof
          • (2)自動重寫

一、概述

Redis 是一種高級 key-value 資料庫,它跟 Memcached 類似,不過資料可以持久化, 而且支持的資料型別很豐富,有字串、串列、集合和有序集合,支持在服務器端計算集合 (difference)等,還支持多種排序功能,所以 Redis 也可以被看成是一個資料結構服務器, Redis 的所有資料都是保存在記憶體中,然后不定期的通過異步方式保存到磁盤上(這稱為“半持久化模式”);也可以把每一次資料變化都寫入到一個 append only file(aof)里面(這稱 為“全持久化模式”), 由于 Redis 的資料都存放在記憶體中,如果沒有配置持久化,Redis 重啟后資料就全丟失了,所以,需要開啟 Redis 的持久化功能,將資料保存到磁盤上,當 Redis 重啟后,可以從磁盤中恢復資料,

二、持久化方式

Redis 提供兩種方式進行持久化,一種是 RDB 持久化(原理是將 Reids 在記憶體中的資料庫記錄定時 dump 到磁盤上的 RDB 持久化),另外一種是AOF(append only file)持久化(原理是將 Reids 的操作日志以追加的方式寫入檔案)

1、RDB 持久化

RDB 持久化是指在指定的時間間隔內將記憶體中的資料集快照寫入磁盤,實際操作程序是 fork 一個子行程,先將資料集寫入臨時檔案,寫入成功后,再替換之前的檔案,用二進制壓縮存盤

在這里插入圖片描述

2、AOF 持久化

AOF 持久化以日志的形式記錄服務器所處理的每一個寫、洗掉操作,查詢操作不會記錄,以文本的方式記錄,可以打開檔案看到詳細的操作記錄,
在這里插入圖片描述

三、RDB與AOF對比

1、RDB優缺點

RDB優點:

  • 一旦采用該方式,那么整個 Redis 資料庫將只包含一個檔案,這對于檔案備份而言是非常完美的,比如,計劃每個小時歸檔一次最近 24
    小時的資料,同時還要每天歸檔一 次最近 30 天的資料,通過這樣的備份策略,一旦系統出現災難性故障,可以非常容易地進行恢復,
  • 對于災難恢復而言,RDB 是非常不錯的選擇,可以非常輕松的將一個單獨的檔案壓縮后再轉移到其它存盤介質上,
  • 性能最大化,對于 Redis 的服務行程而言,在開始持久化時,它唯一需要做的只是 fork
    出子行程,之后再由子行程完成這些持久化的作業,這樣就可以極大的避免服務行程執行 IO 操作了,
  • 相比于 AOF 機制,如果資料集很大,RDB 的啟動效率會更高

RDB缺點:

  • 如果想保證資料的高可用性,即最大限度的避免資料丟失,那么 RDB
    將不是一個很好的選擇,因為系統一旦在定時持久化之前出現宕機現象,此前沒有來得及寫入磁盤的資料都將丟失,
  • 由于 RDB 是通過 fork 子行程來協助完成資料持久化作業的,因此當資料集較大時,可能會導致整個服務器停止服務幾百毫秒,甚至是 1秒鐘,

2、AOF優缺點

AOF優點:

  • AOF 機制可以帶來更高的資料安全性,即資料持久性,Redis 中提供了 3
    種同步策略,即每秒同步、每次修改同步和不同步,事實上,每秒同步也是異步完成的,其效率也是非常高的,弊端是一旦系統出現宕機現象,那么這一秒鐘之內修改的資料將會丟失,而每次修改同步,可以將其視為同步持久化,即每次發生的資料變化都會被立即記錄到磁盤中,這種方式在效率上是最低的,
  • 由于該機制對日志檔案的寫入操作采用的是 append 模式,因此在寫入程序中即使出現宕機現象,也不會破壞日志檔案中已經存在的內容,然而如果本次操作只是寫入了一半 資料就出現了系統崩潰問題,那么在 Redis
    下一次啟動之前,可以通過 redis-check-aof 工具來解決資料一致性的問題,
  • 如果日志過大,Redis 可以自動啟用 rewrite 機制,即 Redis 以 append
    模式不斷地將修改資料寫入到老的磁盤檔案中,同時 Redis 還會創建一個新的檔案用于記錄此期間 有哪些修改命令被執行,因此在進行rewrite 切換時可以更好的保證資料安全性,
  • AOF 包含一個格式清晰、易于理解的日志檔案用于記錄所有的修改操作,事實上,也可以通過該檔案完成資料的重建,

AOF缺點:

  • 對于相同數量的資料集而言,AOF 檔案通常要大于 RDB 檔案,RDB 在恢復大資料集時的速度比 AOF 的恢復速度要快,
  • 根據同步策略的不同,AOF 在運行效率上往往會慢于 RDB,每秒同步策略的效率是比較高的,同步禁用策略的效率和 RDB 一樣高效

四、Redis 持久化配置

1、RDB配置

(1)前臺命令方式(save)

save指令:手動保存操作,執行一次就產生rdb檔案

首先連接到資料庫,里面暫時沒有資料,新建一個key

[root@redis ~]# redis-cli
127.0.0.1:6379> 
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> set name zhangsan
OK
127.0.0.1:6379> get name
"zhangsan"
127.0.0.1:6379> keys *
1) "name"

在資料目錄里沒有產生任何檔案

[root@redis 6379]# ll
總用量 0

這時退出連接,停止redis服務,在資料目錄中多了一個.rdb檔案,打開是亂碼,這個就是默認的rdb檔案,因為默認開啟了rdb功能,只有關閉服務的時候會產生,相當于是對上次連接資料庫進行的操作拍了快照保存下來

[root@redis 6379]# ll
總用量 4
-rw-r--r-- 1 root root 112 9  12 08:33 dump.rdb

[root@redis 6379]# cat dump.rdb 
REDIS0009	redis-ver5.0.7
redis-bits￀?eT\used-memxa
?preamble~?mzhangsan?¨錻l[root@redis 6379]# 

現在洗掉這個rdb檔案,重啟服務,重新連接資料庫

[root@redis 6379]# rm -rf dump.rdb 
[root@redis 6379]# ll
總用量 0

資料庫有一個key,我們輸入save之后再查看資料目錄,立即多了一個rdb檔案

[root@redis ~]# redis-cli
127.0.0.1:6379> 
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> save
OK

[root@redis 6379]# ll
總用量 4
-rw-r--r-- 1 root root 112 9  12 08:42 dump.rdb

這時我們再set一個key并save,觀察rdb檔案的大小,變大了,查看檔案內容,雖然看不懂,但是有看到age的字樣,說明剛才那條操作被保存了

127.0.0.1:6379> set age 30
OK
127.0.0.1:6379> save
OK

[root@redis 6379]# ll
總用量 4
-rw-r--r-- 1 root root 112 9  12 08:42 dump.rdb
[root@redis 6379]# ll
總用量 4
-rw-r--r-- 1 root root 119 9  12 08:45 dump.rdb

[root@redis 6379]# vim dump.rdb 

REDIS0009ú     redis-ver^E5.0.7ú
redis-bitsà@ú^Ectime?;^Z\^Hused-mem?¨^E^M^@ú^Laof-preambleà^@t^@?^B^@^@^Cageà^^^@^Dname^Hzhangsan?ù?3?ú5^A

組態檔中rdb相關引數,默認都是設定好的

242 rdbcompression yes     <----是否壓縮
251 rdbchecksum yes        <----是否校驗,檢查保存的資料是否收到損壞,會消耗一定性能
254 dbfilename dump.rdb    <----默認的rdb檔案名,可以自定義但是必須.rdb結尾

但生產環境不建議用save指令,會拉性能,因為一旦save的時間過長,會阻塞redis服務器,因為它是單執行緒作業的,一個指令完成才執行下個指令,所以為了解決這個問題,出現了在后臺save的方式

(2)后臺命令方式(bgsave)

現在定義一個key,然后執行bgsave,顯示在后臺運行了,不占用前臺資源,你可以做其他的操作

127.0.0.1:6379> set address nanjing
OK
127.0.0.1:6379> bgsave
Background saving started
[root@redis 6379]# ll
總用量 4
-rw-r--r-- 1 root root 136 9  12 09:03 dump.rdb

[root@redis 6379]# vim dump.rdb 

REDIS0009ú     redis-ver^E5.0.7ú
redis-bitsà@ú^Ectime?O^^\^Hused-mem??^E^M^@ú^Laof-preambleà^@t^@?^C^@^@^Gaddress^Gnanjing^@^Dname^Hzhangsan^@^Cageà^^??<82>?F)ê.s

bgsave不是立即執行,它是針對save阻塞問題做的優化

236 stop-writes-on-bgsave-error yes    <-----后臺存盤程序中如果出現錯誤現象是否停止保存操作

(3)自動執行(組態檔)

Redis 會將資料集的快照 dump 到 dump.rdb 檔案中,此外,也可以通過組態檔來修改 Redis 服務器 dump 快照的頻率,這種方式本質還是用的bgsave指令操作的

格式:
save second changes 在多長時間以內,只要是這么多的key發生變化了它就執行save指令
 219 save 900 1    900 (15 分鐘)之后,如果至少有 1  key 發生變化,則 dump 記憶體快照
 220 save 300 10   300 (5 分鐘)之后,如果至少有 10  key 發生變化,則 dump
記憶體快照,
 221 save 60 10000    60 (1 分鐘)之后,如果至少有 10000  key 發生變化,則 dump 記憶體快照

為了觀察實驗現象,設定10s內2個操作就保存一次

219 #save 900 1
 220 #save 300 10
 221 #save 60 10000
 222 save 10 2

連接到資料庫,10s內設定兩個key

[root@redis ~]# redis-cli
127.0.0.1:6379> set name chenyan
OK
127.0.0.1:6379> set age 40
OK

因為一開始將dump.rdb刪掉了,所以目錄是空的,2個操作之后就出現dump.rdb了

[root@redis 6379]# ll
總用量 0
[root@redis 6379]# ll
總用量 4
-rw-r--r-- 1 root root 135 9  12 14:17 dump.rdb

再get一下兩個的值

127.0.0.1:6379> get name
"chenyan"
127.0.0.1:6379> get age
"40"

可以看到因為get沒有對資料進行實質的操作,資料沒有任何改變,所以rdb檔案是不存盤的,所以檔案大小沒有變化

[root@redis 6379]# ll
總用量 4
-rw-r--r-- 1 root root 135 9  12 14:17 dump.rdb
  • 具體save的頻率最侄訓是要根據業務需要設定
  • get指令是不會變化的,因為key沒有改變
  • set同一個key值,也不會改變,因為資料沒有發生變化

2、AOF配置(默認關閉)

在 Redis 的組態檔中存在三種同步方式,它們分別是

  • appendfsync always:每次有資料修改發生時都會寫入 AOF 檔案
  • appendfsynceverysec:每秒鐘同步一次,該策略為 AOF 的預設策略
  • appendfsync no:系統控制

本例我們設定第一種方式aof
首先需要在組態檔里開啟aof,如下所示,然后重啟服務

 700 appendonly yes    <---開啟aof持久化
 704 appendfilename "appendonly.aof"
 729 appendfsync always
 730 #appendfsync everysec
 731 # appendfsync no

[root@redis ~]# /etc/init.d/redis_6379 restart
Stopping ...
Redis stopped
Starting Redis server...

這時我們發現在資料目錄里已經有了一個aof檔案,但此時檔案大小為0,在資料庫中set一個key,aof檔案就記錄資料了

[root@redis 6379]# ll
總用量 4
-rw-r--r-- 1 root root   0 9  12 14:33 appendonly.aof
-rw-r--r-- 1 root root 135 9  12 14:33 dump.rdb

127.0.0.1:6379> set id 1
OK

[root@redis 6379]# ll
總用量 8
-rw-r--r-- 1 root root  51 9  12 14:33 appendonly.aof
-rw-r--r-- 1 root root 135 9  12 14:33 dump.rdb

再次set一個key,觀察aof的檔案大小,又變大了,因為又執行了一次操作

127.0.0.1:6379> set hobby game
OK

[root@redis 6379]# ll
總用量 8
-rw-r--r-- 1 root root  85 9  12 14:34 appendonly.aof
-rw-r--r-- 1 root root 135 9  12 14:33 dump.rdb

我們來get一下key,發現aof檔案大小是沒有改變的,因為資料沒有改變

127.0.0.1:6379> get id
"1"
[root@redis 6379]# ll
總用量 8
-rw-r--r-- 1 root root  85 9  12 14:34 appendonly.aof
-rw-r--r-- 1 root root 135 9  12 14:33 dump.rdb

1、重寫功能

Redis 會不斷地將被執行的命令記錄到 AOF 檔案里面,所以隨著 Redis 不斷運行,AOF 檔案的體積也會不斷增長,在極端情況下,體積不斷增大的 AOF 檔案甚至可能會用完硬碟 的所有可用空間,Redis 在重啟之后需要通過重新執行 AOF 檔案記錄的所有寫命令來還原資料集,所以如果 AOF 檔案的體積非常大,那么還原操作執行的時間就可能會非常長,

(1)手動重寫bgrewriteaof

為了解決 AOF 檔案體積不斷增大的問題,用戶可以向 Redis 發送 BGREWRITEAOF 命令,BGREWRITEAOF 命令會通過移除 AOF 檔案中的冗余命令來重寫(rewrite)AOF 檔案,使 AOF 檔案的體積盡可能地變小,

為了測驗,洗掉原來的aof檔案然后重啟服務

[root@redis 6379]# rm -rf appendonly.aof 
[root@redis 6379]# ll
總用量 4
-rw-r--r-- 1 root root 135 9  12 14:33 dump.rdb
[root@redis ~]# /etc/init.d/redis_6379 restart
Stopping ...
Redis stopped
Starting Redis server...

登入資料庫執行以下操作,查看aof檔案的大小

127.0.0.1:6379> set name shengjie
OK
127.0.0.1:6379> set name zhangsan
OK
127.0.0.1:6379> set name lisi
OK
127.0.0.1:6379> set name wangwu
OK

[root@redis 6379]# ll
總用量 8
-rw-r--r-- 1 root root 165 9  12 14:43 appendonly.aof
-rw-r--r-- 1 root root 122 9  12 14:43 dump.rdb

然后執行重寫命令,再次觀察aof檔案的大小

127.0.0.1:6379> BGREWRITEAOF
Background append only file rewriting started

[root@redis 6379]# ll
總用量 8
-rw-r--r-- 1 root root 110 9  12 14:44 appendonly.aof
-rw-r--r-- 1 root root 122 9  12 14:43 dump.rdb

檔案變小了,查看aof檔案的內容,發現只有最后一條name的記錄,因為前面修改的記錄沒有意義

[root@redis 6379]# vim appendonly.aof 

REDIS0009ú     redis-ver^E5.0.7ú
redis-bitsà@ú^Ectime?Qn\^Hused-mem?e^E^M^@ú^Laof-preambleà^At^@?^A^@^@^Dname^Fwangwu??@yCj<87>y?

BGREWRITEAOF 的作業原理和 BGSAVE 創建快照的作業原理非常相似:Redis 會創 建一個子行程,然后由子行程負責對 AOF 檔案進行重寫,因為 AOF 檔案重寫也需要用到 子行程,所以快照持久化因為創建子行程而導致的性能問題和記憶體占用問題,在 AOF 持久 化中也同樣存在,

(2)自動重寫

與快照持久化通過設定 save 選項來自動執行 BGSAVE 一樣,AOF 持久化也可以通過設定 auto-aof-rewrite-percentage 選 項 和 auto-aof-rewrite-min-size 選項來自動執行 BGREWRITEAOF

 771 auto-aof-rewrite-percentage 100
 772 auto-aof-rewrite-min-size 64mb

舉個例子,假設用戶對 Redis 設定了配置選項 auto-aof-rewrite-percentage 100 和 auto-aof-rewrite-min-size 64mb,并且啟動了 AOF 持久化,那么當 AOF 檔案的體積大于 64MB,并且 AOF 檔案的體積比上一次重寫之后的體積大了至少一倍(100%)的時候,Redis 將執行 BGREWRITEAOF 命令,如果 AOF 重寫執行的過于頻繁的話,用戶可以考慮將 auto-aof-rewrite-percentage 選項的值設定為 100 以上,這種做法可以讓 Redis 在 AOF 檔案的體積變得更大之后才執行重寫操作,不過也會讓 Redis 在啟動時還原資料集所需的時間變得更長

總結:官方建議同時開啟RDS和AOF,更加安全

持久化的時機:如果同時開啟,那么redis宕機重啟后,會優先選擇AOF檔案,降低丟失資料的量

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

標籤:其他

上一篇:Apache安裝配置(Windows和Linux)-有手就行

下一篇:centos 7.6——redis-Cluster——主從復制

標籤雲
其他(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