主頁 >  其他 > Redis高可用模式——主從復制、哨兵模式、群集模式(重要且詳細)

Redis高可用模式——主從復制、哨兵模式、群集模式(重要且詳細)

2021-02-28 10:39:51 其他

一、Redis高可用模式

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

二、Redis主從復制

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

2.1 主從復制的作用

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

2.2 主從復制流程

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

三、搭建Redis主從復制

Master節點: 192. 168.238.10
Slave1節點: 192. 168.238.20
Slave2節點: 192. 168.238.30
#!/bin/bash

#yum源
echo -e "\033[31m =====正在驗證當前為僅主機還是NAT模式===== \033[0m"
ping -c1 -W1 www.baidu.com &> /dev/null
if [ $? -eq 0 ];then echo -e "\033[31m 檢測當前為NAT模式,為您配置在線yum源 \033[0m"
mkdir -p /etc/yum.repos.d/repo.bak

mv -f /etc/yum.repos.d/* /etc/yum.repos.d/repo.bak &> /dev/null

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &> /dev/null

yum clean all &> /dev/null
yum list &> /dev/null
echo -e "\033[31m 在線源已配置完成 \033[0m"

else
echo -e "\033[31m 檢測當前為僅主機模式,為您配置本地yum源 \033[0m"
mount /dev/sr0 /mnt &> /dev/null
cd /etc/yum.repos.d/
mkdir -p /etc/yum.repos.d/repo.bak

mv -f /etc/yum.repos.d/* /etc/yum.repos.d/repo.bak &> /dev/null

echo '[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0' > /etc/yum.repos.d/local.repo
yum clean all &> /dev/null
yum makecache &> /dev/null

df -h | grep "/mnt" 
if [ $? -ne 0 ];then
echo -e "\033[31m 檢測當前為僅主機模式,但光碟未連接! \033[0m"
else
echo -e "\033[31m 本地yum源已配置完成 \033[0m"
fi
fi

#關閉防火墻
systemctl stop firewalld
setenforce 0
yum install -y gcc gcc-c++ make
rpm -q expect
rpm -q tcl
yum -y install expect
cd /opt
tar zxvf redis-5.0.7.tar.gz -C /opt/
cd /opt/redis-5.0.7/
make
make PREFIX=/usr/local/redis install
#由于Redis原始碼包中直接提供了Makefile 檔案,所以在解壓完軟體包后,不用先執行./configure進行配置,可直接執行make與make install 命令進行安裝,

#在/utils里執行軟體包提供的install_server.sh腳本檔案設定Redis服務所需要的相關組態檔
cd /opt/redis-5.0.7/utils

#開始免交換執行
/usr/bin/expect <<EOF
#expect開始標志
spawn ./install_server.sh
#Please select the redis port for this instance: [6379]
expect "instance"
send "\r" 
#Please select the redis config file name [/etc/redis/6379.conf] 
expect "config"
send "\r"
#Please select the redis log file name [/var/log/redis_6379.log]
expect "log"
send "\r"
#Please select the data directory for this instance [/var/lib/redis/6379]
expect "data"
send "\r"
#Please select the redis executable path []
expect "executable"
send "/usr/local/redis/bin/redis-server\r"
#Is this ok? Then press ENTER to go on or Ctrl-C to abort.
expect "abort"
send "\r"
expect eof
EOF


ln -s /usr/local/redis/bin/* /usr/local/bin/
netstat -natp | grep redis

/etc/init.d/redis_6379 restart     
/etc/init.d/redis_6379 status   

sed -i '/bind 127.0.0.1/c bind 0.0.0.0' /etc/redis/6379.conf
sed -i 's/appendonly no/appendonly yes/' /etc/redis/6379.conf
/etc/redis/6379.conf
 
/etc/init.d/redis_6379 restart
/etc/init.d/redis_6379 status  

從服務器執行命令

sed -i '/replicaof <masterip> <masterport>/c replicaof 192.168.238.10 6379' 

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

上面的腳本已將操作這一步

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行,指定作業目錄
appendonly yes           		   #700行,開啟AOF持久化功能

/etc/init.d/redis_6379 restart

修改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.238.10 6379 		#288行,指定要同步的Master節點IP和埠
appendonly yes		#700行,開啟AOF持久化功能

/etc/init.d/redis_6379 restart

驗證主從效果

在Master節點上看日志

tail -f /var/log/redis_6379.log
Replica 192.168.80.11:6379 asks for synchronization
Replica 192.168.80.12:6379 asks for synchronization

在這里插入圖片描述

在Master節點上驗證從節點

redis-cli info replication
# Replication
role:master
connected slaves:2
slave0:ip=192.168.80.11, port=6379, state=online, offset=1246, lag=0
slave1:ip=192.168.80.12, port=6379, state=online, offset=1246, lag=1

在這里插入圖片描述
在Slave節點上驗證從節點
在這里插入圖片描述

四、Redis 哨兵模式

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

4.1 哨兵模式原理

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

4.2 哨兵模式的作用

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

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

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

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

五、配置哨兵模式

Master節點: 192.168.238.10
Slave1節點: 192.168.238.20
Slave2節點: 192.168.238.30
systemctl stop firewalld
setenforce 0

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

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

啟動哨兵模式

先啟master,再啟slave

cd /opt/redis-5.0.7/
redis-sentinel sentinel.conf &

在這里插入圖片描述

查看哨兵資訊

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.80.10: 6379,slaves=2,sentinels=3

在這里插入圖片描述
在這里插入圖片描述

故障模擬

查看redis-server行程號

ps -ef | grep redis
root    57031    1    	 0 15:20 ?    		00:00:07 /usr/local/bin/redis-server 0.0.0.0:6379
root    57742    1   	 1 16:05 ?    		00:00:07 redis-sentinel *:26379 [sentinel]
root    57883    57462   0 16:17 pts/1      00:00:00 grep --color=auto redis

主:
root      46721   6605  0 20:30 pts/3    00:00:00 tail -f /var/log/redis_6379.log
root      46768   6605  0 20:34 pts/3    00:00:00 tail -f /var/log/redis_6379.log
root      46790   6605  0 20:36 pts/3    00:00:00 tail -f /var/log/redis_6379.log
root      46832      1  0 20:39 ?        00:00:16 /usr/local/redis/bin/redis-server 0.0.0.0:6379
root      46848   6605  0 20:40 pts/3    00:00:00 tail -f /var/log/redis_6379.log
root      48779      1  0 23:46 ?        00:00:00 redis-sentinel *:26379 [sentinel]
root      48801  48225  0 23:48 pts/2    00:00:00 grep --color=auto redis


從:
[root@localhost redis-5.0.7]#ps -ef | grep redis
root      47386      1  0 20:30 ?        00:00:19 /usr/local/redis/bin/redis-server 0.0.0.0:6379
root      49483      1  0 23:46 ?        00:00:00 redis-sentinel *:26379 [sentinel]
root      49519  48928  0 23:50 pts/1    00:00:00 grep --color=auto redis

#殺死Master 節點上redis- server的行程號
kill -9 57031    #Master節點上redis-server的行程號

在這里插入圖片描述

在這里插入圖片描述

驗證結果

tail -f /var/log/sentinel.log
57742:X 07 Aug 2020 16:19:21.170 # +failover-state-select-slave master mymaster 192.168.80.11 6379
57742:x 07 Aug 2020 16:19:21.170 # -sdown slave 192.168.80.12:6379 192.168.80.12 6379 @ mymaster 192.168.80.11 6379
57742:X 07 Aug 2020 16:19:21.272 # +selected-slave slave 192.168.80.12:6379 192.168.80.12 6379 @ mymaster 192.168.80.11 6379
57742:X 07 Aug 2020 16:19:21.272 ★+failover-state-send-slaveof-noone slave 192.168.80.12:6379 192.168.80.12 6379 @ mymaster 192.168.80.11 6379
57742:X 07 Aug 2020 16:19:21.338 * +failover-state-wait-promotion slave 192.168.80.12:6379 192.168.80.12 6379 @ mymaster 192.168.80.11 6379
57742:X 07 Aug 2020 16:19:21.402 # -failover- abort-slave-timeout master mymaster 192.168.80.11 6379
57742:X 07 Aug 2020 16:19:21.799 # -sdown master mymaster 192.168.80.11 6379
57742:X 07 Aug 2020 16:19:21.826 # +new - epoch 41
57742:X 07 Aug 2020 16:19:21.827 # +vote- for-leader b12178afd9f862e0ead00763c2c7f1ae7f5de22e 41
57742:X 07 Aug 2020 16:19:31.137 * +convert- to- slave slave 192.168.80.12:6379 192.168.80.12 6379 @ mymaster 192.168.80.11 6379
[root@localhost redis-5.0.7]#tail -f /var/log/sentinel.log
48779:X 25 Feb 2021 23:46:57.327 * +sentinel sentinel 0d2634b6bba9148fd0dcc86b6f1b84e345a2c35e 192.168.238.20 26379 @ mymaster 192.168.238.10 6379
48779:X 25 Feb 2021 23:47:13.367 * +sentinel sentinel 4172c90a7e2f5c352bad5df746aa995a4ed8c229 192.168.238.30 26379 @ mymaster 192.168.238.10 6379
48779:X 25 Feb 2021 23:54:22.812 # +sdown master mymaster 192.168.238.10 6379
48779:X 25 Feb 2021 23:54:22.904 # +new-epoch 1
48779:X 25 Feb 2021 23:54:22.904 # +vote-for-leader 4172c90a7e2f5c352bad5df746aa995a4ed8c229 1
48779:X 25 Feb 2021 23:54:23.788 # +config-update-from sentinel 4172c90a7e2f5c352bad5df746aa995a4ed8c229 192.168.238.30 26379 @ mymaster 192.168.238.10 6379
48779:X 25 Feb 2021 23:54:23.788 # +switch-master mymaster 192.168.238.10 6379 192.168.238.30 6379
48779:X 25 Feb 2021 23:54:23.789 * +slave slave 192.168.238.20:6379 192.168.238.20 6379 @ mymaster 192.168.238.30 6379
48779:X 25 Feb 2021 23:54:23.789 * +slave slave 192.168.238.10:6379 192.168.238.10 6379 @ mymaster 192.168.238.30 6379
48779:X 25 Feb 2021 23:54:53.881 # +sdown slave 192.168.238.10:6379 192.168.238.10 6379 @ mymaster 192.168.238.30 6379

在這里插入圖片描述
在這里插入圖片描述

六、Redis群集模式

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

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

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

6.2 Redis集群的資料分片

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

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

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

6.4 Redis集群的主從復制模型

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

七、搭建Redis群集模式

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

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

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

開啟群集功能

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

cd /etc/redis/redis-cluster/redis 6001
vim redis.conf
bind 127.0.0.1
#69行,注釋掉bind項,默認監聽所有網卡
protected-mode no
#88行,修改,關閉保護模式
port 6001
#92行,修改,redis監聽埠,
daemonize yes
#136行,開啟守護行程,以獨立行程啟動
cluster-enabled yes
#832行,取消注釋,開啟群集功能
cluster-config-file nodes-6001.conf
#840行,取消注釋,群集名稱檔案設定
cluster-node-timeout 15000
#846行,取消注釋群集超時時間設定
appendonly yes
#700行,修改,開啟AOF持久化

在這里插入圖片描述
在這里插入圖片描述

啟動redis節點

分別進入那六個檔案夾,執行命令: redis-server redis.conf ,來啟動redis節點

cd /etc/redis/redis-cluster/redis6001
redis-server redis.conf
for d in {1..6}
do
cd /etc/redis/redis-cluster/redis600$d
redis-server redis.conf
done
ps -ef | grep redis

在這里插入圖片描述

啟動集群

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個從節點,

在這里插入圖片描述
在這里插入圖片描述

#測驗群集

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) " fdca661922216dd69a63a7c9d3c4540cd6baef44"
   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) "0e5873747a2e26bdc935bc76c2bafb19d0a54b11"
      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 6ddaa3d1469540b2ffbcaaf9aa867646846b30"
   4) 1) "127.0.0.1"
      2) (integer) 6005
      3) " f847077bfe6722466e96178ae8cbb09dc8b4d5eb"
127.0.0.1:6001> set name zhangsan
-> Redi rected to slot [5798] located at 127.0.0.1:6003 
OK
127.0.0.1:6001> cluster keyslot name    #查看name鍵的槽編號
127.0.0.1:6001> cluster slots
1) 1) (integer) 10923
   2) (integer) 16383
   3) 1) "127.0.0.1"
      2) (integer) 6003
      3) "f466e92c2487cea57aeca1ac74065e976f23bf0e"
   4) 1) "127.0.0.1"
      2) (integer) 6004
      3) "451dda82fd262ad6f3eaca5d39a4847b7c2b635c"
2) 1) (integer) 5461
   2) (integer) 10922
   3) 1) "127.0.0.1"
      2) (integer) 6002
      3) "1cbb5bdda47f98adb4193da8cc7b801ef76ac08e"
   4) 1) "127.0.0.1"
      2) (integer) 6006
      3) "fb71c49ba37aa0e2495160b6979d8c79b56f123f"
3) 1) (integer) 0
   2) (integer) 5460
   3) 1) "127.0.0.1"
      2) (integer) 6001
      3) "7696a844322b9a2c8d23125228afd25097885546"
   4) 1) "127.0.0.1"
      2) (integer) 6005
      3) "87412db1a80e4f8064205efdb581d34e0af80c2e"
      127.0.0.1:6001> set name xyw
-> Redirected to slot [5798] located at 127.0.0.1:6002
OK
127.0.0.1:6002> cluster keyslot name
(integer) 5798

在這里插入圖片描述
在這里插入圖片描述

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

標籤:其他

上一篇:Vivado一鍵生成Verilog例化代碼方法分享

下一篇:【紅寶書】OpenGL Demo Code環境搭建

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