redis 各個模式的安裝

一、Redis單機安裝

1、安裝gcc依賴

Redis是C語言編寫的,編譯需要GCC。

Redis6.x.x版本支持了多線程,需要gcc的版本大于4.9,但是CentOS7的默認版本是4.8.5。
升級gcc版本:

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ 
devtoolset-9-binutils
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile

確認gcc的版本(在同一個窗口中!):

gcc -v

2、下載解壓文件

下載地址:https://redis.io/download/#redis-downloads

解壓文件

[root@localhost src]# tar -xzf redis-6.0.16.tar.gz

2、修改redis.config文件

daemonize yes   //更改為后臺啟動#bind 127.0.0.1  //注釋protected-mode no  //允許外部網絡直接訪問

4、啟動redis

如果src沒有redis-server,在redis目錄執行make指令

[root@localhost src]# ./redis-server ../redis.conf   //啟動服務
[root@localhost src]# ./redis-cli    //進入客戶端

二、Redis主從安裝

1、修改redis.config文件

daemonize yes   //更改為后臺啟動
#bind 127.0.0.1  //注釋
protected-mode no  //允許外部網絡直接訪問    
replicaof 192.168.8.129 6379   //添加是哪臺機器的從節點 主節點IP 主節點端口

2、啟動redis

如果src沒有redis-server,在redis目錄執行make指令

[root@localhost src]# ./redis-server ../redis.conf   //啟動服務    
[root@localhost src]# ./redis-cli    //進入客戶端

查看是否配置了主節點配置

127.0.0.1:6379> config get replicaof1) "replicaof"2) "192.168.8.129 6379"

查看從節點信息

127.0.0.1:6379> info replication
# Replication
role:slave  //角色master_host:192.168.8.129  //主節點IPmaster_port:6379  //主節點端口master_link_status:up  //連接狀態 up是正常同步連接狀態 down表
示復制端口master_last_io_seconds_ago:1  //主庫多少秒沒有發送數據到從庫 0-
10master_sync_in_progress:0  //是否正在跟主服務同步slave_repl_offset:163  //從節點偏移量slave_priority:100  //選舉時成為主節點的優先級   越大優先級越高 0 不會成為主節點slave_read_only:1  //是否為只讀從庫connected_slaves:0  //連接的從庫實例master_replid:04f4969ab63ce124e870fa1e4920942a5b3448e7 //master啟動時生成的40位16進制的隨機字符串,用來標識master節點master_replid2:0000000000000000000000000000000000000000 //slave切換master之后,會生成了自己的master標識,之前的master節
點的標識存到了master_replid2的位置master_repl_offset:163 //已寫入偏移量second_repl_offset:-1repl_backlog_active:1repl_backlog_size:1048576  //復制積壓的緩存區大小repl_backlog_first_byte_offset:1repl_backlog_histlen:163

3、查看主節點信息

127.0.0.1:6379> info replication
# Replication
role:master  //角色connected_slaves:1 //從節點數量slave0:ip=192.168.8.127,port=6379,state=online,offset=7889
9,lag=1  //從節點的信息 狀態 偏移量master_replid:04f4969ab63ce124e870fa1e4920942a5b3448e7 //# master啟動時生成的40位16進制的隨機字符串,用來標識master節點master_replid2:0000000000000000000000000000000000000000master_repl_offset:78899 //mater已寫入的偏移量second_repl_offset:-1repl_backlog_active:1repl_backlog_size:1048576  //緩沖區大小repl_backlog_first_byte_offset:1repl_backlog_histlen:78899 //緩沖區的數據已有大小(是個環形,跟RedoLog一樣會覆蓋)

4、運行時變成主的從庫

解除主從關系

127.0.0.1:6379> slaveof no one
OK

添加從節點

127.0.0.1:6379> slaveof 192.168.8.129 6379OK

三、 Redis哨兵安裝

1、修改sentinel.cfg文件

配置文件跟redis.cfg一個路徑,都在redis根目錄,如果要監控多套主服務,配置多個即可

port 26379  //sentinel服務端口
daemonize yes //是否后臺啟動
//sentinel monitor <master-group-name> <ip> <port> <quorum>
sentinel monitor mymaster 192.168.8.129 6379 2  
//mymaster主服務的名稱   192.168.8.129 6379 master的ip與端口 quornum 認為master不可用的sentinel數量
sentinel down-after-milliseconds mymaster 30000  //30s后聯系不到 認為關閉
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000

2、啟動sentinel服務

[root@localhost src]# ./redis-sentinel ../sentinel.conf   //啟動sentinel服務

3、連接sentinel服務

[root@localhost src]# ./redis-cli -p 26379
127.0.0.1:26379>

4、查看master的信息

127.0.0.1:26379> sentinel master mymaster    //mymaster為自定義的名稱1) "name"2) "mymaster"3) "ip"4) "192.168.8.129"5) "port"6) "6379"7) "runid" 8) "75fb165dd59b82d1154d11939a0b9a45211bf68a"9) "flags"
10) "master"
11) "link-pending-commands"
12) "0"
13) "link-refcount"
14) "1"
15) "last-ping-sent"
16) "0"
17) "last-ok-ping-reply"
18) "256"
19) "last-ping-reply"
20) "256"
21) "down-after-milliseconds"
22) "30000"
23) "info-refresh"
24) "5553"
25) "role-reported"
26) "master"
27) "role-reported-time"
28) "156216"
29) "config-epoch"
30) "0"
31) "num-slaves"  //從節點數量
32) "2"
33) "num-other-sentinels"  //其他的哨兵數量
34) "2"
35) "quorum"
36) "2"
37) "failover-timeout"
38) "180000"
39) "parallel-syncs"
40) "1"

5、sentinel查詢主庫地址

1.連接sentinel客戶端

[root@localhost src]# ./redis-cli -p 26379

2.查詢主庫地址

127.0.0.1:26379> sentinel get-master-addr-by-name mymaster
1) "192.168.8.128"
2) "6379"

6、sentinel主要指令

該SENTINEL命令是 Sentinel 的主要 API。以下是其子命令的列表(在適用的情況下注明了最小版本):

  • SENTINEL CONFIG GET ( >= 6.2 ) 獲取全局 Sentinel 配置參數的當前值。指定的名稱可以是通配符,類似于 Redis CONFIG GET 命令。
  • SENTINEL CONFIG SET ( >= 6.2 ) 設置全局Sentinel 配置參數的值。
  • SENTINEL CKQUORUM 檢查當前的 Sentinel 配置是否能夠達到故障轉移主服務器所需的法定人數,以及授權故障轉移所需的多數。此命令應用于監控系統以檢查 Sentinel 部署是否正常。
  • SENTINEL FLUSHCONFIG強制 Sentinel 在磁盤上重寫其配置,包括當前 Sentinel 狀態。通常,Sentinel 會在每次狀態發生變化時重寫配置(在重啟后保留在磁盤上的狀態子集的上下文中)。然而,有時配置文件可能會因為操作錯誤、磁盤故障、軟件包升級腳本或配置管理器而丟失。在這些情況下,強制 Sentinel 重寫配置文件的方法很方便。即使先前的配置文件完全丟失,此命令也有效。
  • SENTINEL FAILOVER 強制進行故障轉移,就好像主服務器不可訪問一樣,并且無需征求其他 Sentinel 的同意(但是將發布新版本的配置,以便其他 Sentinel 更新其配置)。
  • SENTINEL GET-MASTER-ADDR-BY-NAME 返回具有該名稱的主機的 ip 和端口號。如果此主服務器正在進行故障轉移或成功終止,它將返回提升副本的地址和端口。
  • SENTINEL INFO-CACHE ( )從主服務器和副本服務器>= 3.2 返回緩存的輸出。INFO
  • SENTINEL IS-MASTER-DOWN-BY-ADDR從當前 Sentinel 的角度檢查ip:port 指定的主服務器是否已關閉。該命令主要供內部使用。
  • SENTINEL MASTER 顯示指定主站的狀態和信息。
  • SENTINEL MASTERS顯示受監控的主控列表及其狀態。
  • SENTINEL MONITOR啟動 Sentinel 的監控。有關詳細信息,請參閱運行時重新配置 Sentinel部分。
  • SENTINEL MYID ( >= 6.2 ) 返回 Sentinel 實例的 ID。
  • SENTINEL PENDING-SCRIPTS此命令返回有關未決腳本的信息。
  • SENTINEL REMOVE停止 Sentinel 的監控。有關詳細信息,請參閱在運行時重新配置 Sentinel部分。
  • SENTINEL REPLICAS ( >= 5.0 ) 顯示此主服務器的副本列表及其狀態。
  • SENTINEL SENTINELS 顯示該 master 的哨兵實例列表及其狀態。
  • SENTINEL SET設置 Sentinel 的監控配置。有關詳細信息,請參閱在運行時重新配置 Sentinel部分。
  • SENTINEL SIMULATE-FAILURE (crash-after-election|crashafter-promotion|help)( >= 3.2 ) 此命令模擬不同的 Sentinel 崩潰場景。
  • SENTINEL RESET 此命令將重置所有具有匹配名稱的主機。模式參數是一個全局樣式的模式。重置過程會清除 master 中的任何先前狀態(包括正在進行的故障轉移),并刪除已發現并與 master關聯的每個副本和哨兵。

7、出于連接管理和管理目的,Sentinel 支持以下 Redis 命令子集:

  • ACL ( >= 6.2 ) 此命令管理 Sentinel 訪問控制列表。有關詳細信息,請參閱ACL文檔頁面和Sentinel 訪問控制列表身份驗證。
  • AUTH ( >= 5.0.1 ) 驗證客戶端連接。有關詳細信息,請參閱AUTH命令和使用身份驗證配置 Sentinel 實例部分。
  • CLIENT此命令管理客戶端連接。有關更多信息,請參閱其子命令頁面。
  • COMMAND ( >= 6.2 ) 此命令返回有關命令的信息。有關詳細信息,請參閱該COMMAND命令及其各種子命令。
  • HELLO ( >= 6.0 ) 切換連接的協議。有關詳細信息,請參閱HELLO命令。
  • INFO返回有關 Sentinel 服務器的信息和統計信息。有關更多信息,請參閱INFO命令。
  • PING這個命令只返回 PONG。
  • ROLE此命令返回字符串“sentinel”和受監控的主機列表。有關詳細信
    息,請參閱ROLE命令。
  • SHUTDOWN關閉 Sentinel 實例。

8、模擬主服務器掛掉

  • 模擬主服務器關閉 192.168.8.129
[root@localhost src]# ./redis-cli
127.0.0.1:6379> info replication // 查看
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.8.127,port=6379,state=online,offset=232310,lag=0
slave1:ip=192.168.8.128,port=6379,state=online,offset=232310,lag=1master_replid:d1274cc57aa3a2f1fed3068a429b972d6268453d
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:232310
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:232310
127.0.0.1:6379> shutdown  //執行服務關閉
  • 我們再查看另外的2個實例的信息(由于切換需要時間,所以不會馬上變更)192.168.8.128的信息,我們發現128升級為主了。
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.8.127,port=6379,state=online,offset=278214,lag=1
master_replid:b32f0f1140789e7d0e30c88e717730cbd93dd3d8
master_replid2:d1274cc57aa3a2f1fed3068a429b972d6268453d
master_repl_offset:278355
second_repl_offset:233876
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:278355

192.168.8.127的信息,我們發現127變成了128的主

127.0.0.1:6379> info replication
# Replication
role:slave
master_host:192.168.8.128
master_port:6379
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:274802
slave_priority:100
slave_read_only:0
connected_slaves:0
master_replid:b32f0f1140789e7d0e30c88e717730cbd93dd3d8
master_replid2:d1274cc57aa3a2f1fed3068a429b972d6268453d
master_repl_offset:274802
second_repl_offset:233876
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:274802

我們基于Sentinel就能實現主從的自動切換。

四、RedisCluster集群安裝

1、安裝

RedisCluster至少得三主三從 6個節點

6節點分別以127、128、129 3臺機器的 6380、6381端口

2、復制原有安裝文件,把原有文件改成6380

cp -r redis-6.0.16 redis-6.0.16-6381 
mv redis-6.0.16 redis-6.0.16-6380

3、更改redis.config配置文件

#bind 127.0.0.1
protected-mode no
daemonize yes 
cluster-enabled yes  開啟集群
cluster-config-file nodes-6380.conf   //不同的端口實例不同 比如6381就是nodes-6381.conf 
pidfile /var/run/redis_6380.pid     //不同的端口實例不同 比如6381就是redis_6381.pid

4、開啟Cluster集群

[root@localhost src]# ./redis-cli --cluster create 192.168.8.129:6380 192.168.8.129:6381 192.168.8.128:6381 192.168.8.128:6380 192.168.8.127:6380 192.168.8.127:6381 --cluster-replicas 1

如果報非空,刪除相關節點的數據,以及cluster-config-file配置的文件

5、查看集群信息

127.0.0.1:6380> cluster nodes
ed1d6852839ea0f4eccb3231d9230a701a079783 
192.168.8.129:6380@16380 myself,master - 0 1657818165000 1 
connected 0-5460
e1b44fb5617b3c835238ca8a9bdbc86aa2dcec72 
192.168.8.128:6381@16381 master - 0 1657818166000 3 
connected 5461-10922
f639ac4eee5d79f82e27d7a5b038eeff9d6a4ca8 
192.168.8.127:6381@16381 slave 
e1b44fb5617b3c835238ca8a9bdbc86aa2dcec72 0 1657818165784 3 
connected
8df23b5a556a32c4b65d228250f6cbddb18bfaf4 
192.168.8.128:6380@16380 slave 
ed1d6852839ea0f4eccb3231d9230a701a079783 0 1657818166788 1 
connecte
abe5ae19378385e1c8f9fb7c93a702343947e216 
192.168.8.127:6380@16380 master - 0 1657818162000 5 
connected 10923-1638
4d0fcb91f0afa7eaf6cba415249fe6f8baa4c2e8 
192.168.8.129:6381@16381 slave 
abe5ae19378385e1c8f9fb7c93a702343947e216 0 1657818167791 5 
connected

6、模擬服務器宕機

  • 模擬129的6380宕機,我們發現129:6380的slave 128:6380自動升為
    主。
127.0.0.1:6380> cluster nodes
4d0fcb91f0afa7eaf6cba415249fe6f8baa4c2e8 
192.168.8.129:6381@16381 slave 
abe5ae19378385e1c8f9fb7c93a702343947e216 0 1657819837000 5 
connecte
abe5ae19378385e1c8f9fb7c93a702343947e216 
192.168.8.127:6380@16380 master - 0 1657819833000 5 
connected 10923-16383
f639ac4eee5d79f82e27d7a5b038eeff9d6a4ca8 
192.168.8.127:6381@16381 slave 
e1b44fb5617b3c835238ca8a9bdbc86aa2dcec72 0 1657819836183 3 
connecte
ed1d6852839ea0f4eccb3231d9230a701a079783 
192.168.8.129:6380@16380 master,fail - 1657819132867 
1657819129000 1 disconnected
8df23b5a556a32c4b65d228250f6cbddb18bfaf4 
192.168.8.128:6380@16380 myself,master - 0 1657819835000 7 
connected 0-5460
e1b44fb5617b3c835238ca8a9bdbc86aa2dcec72 
192.168.8.128:6381@16381 master - 0 1657819837187 3 
connected 5461-10922

所以,cluster可以進行自動故障轉移

7、添加節點(集群擴容)

我現在添加一個節點 192.168.8.137:6380實例,我希望加到cluster集群

在隨便現有的clusternode節點中執行:
第一個參數是要添加的節點,第二個參數為已有的cluster集群隨機一個節

./redis-cli --cluster add-node 192.168.8.137:6380 192.168.8.128:6380

8、查看nodes節點

127.0.0.1:6381> cluster nodes
e1b44fb5617b3c835238ca8a9bdbc86aa2dcec72 
192.168.8.128:6381@16381 myself,master - 0 1657903080000 3 
connected 5461-10922
abe5ae19378385e1c8f9fb7c93a702343947e216 
192.168.8.127:6380@16380 master - 0 1657903081336 5 
connected 10923-1638
4d0fcb91f0afa7eaf6cba415249fe6f8baa4c2e8 
192.168.8.129:6381@16381 slave 
abe5ae19378385e1c8f9fb7c93a702343947e216 0 1657903081000 5 
connected
8df23b5a556a32c4b65d228250f6cbddb18bfaf4 
192.168.8.128:6380@16380 master - 0 1657903082000 7 
connected 0-5460
f639ac4eee5d79f82e27d7a5b038eeff9d6a4ca8 
192.168.8.127:6381@16381 slave 
e1b44fb5617b3c835238ca8a9bdbc86aa2dcec72 0 1657903079000 3 
connected
143bb59351740be6087766df8af135d22679c7f9 
192.168.8.137:6380@16380 master - 0 1657903082339 0 
connecte
ed1d6852839ea0f4eccb3231d9230a701a079783 
192.168.8.129:6380@16380 slave 
8df23b5a556a32c4b65d228250f6cbddb18bfaf4 0 1657903080333 7 
connected

我們發現,137的6380節點已經到了cluster集群。但是是沒有分配虛擬槽的,所以要進行槽的分配

9、Cluster其他指令

官網地址:https://redis.io/commands/?group=cluster集群相關命令(需要進入客戶端)

  • cluster info :打印集群的信息
  • cluster nodes :列出集群當前已知的所有節點(node),以及這些節點的相關信息。
  • cluster meet :將 ip 和 port 所指定的節點添加到集群當中,讓它成為集群的一份子。
  • cluster forget <node_id> :從集群中移除 node_id 指定的節點(保證空槽道)。
  • cluster replicate <node_id> :將當前節點設置為 node_id 指定的節點的從節點。
  • cluster saveconfig :將節點的配置文件保存到硬盤里面。

10、槽slot命令

  • cluster addslots [slot …] :將一個或多個槽(slot)指派(assign)給當前節點。
  • cluster delslots [slot …] :移除一個或多個槽對當前節點的指派。
  • cluster flushslots :移除指派給當前節點的所有槽,讓當前節點變成一個沒有指派任何槽的節點。cluster setslot node <node_id> :將槽 slot 指派給 node_id 指定的節點,如果槽已經指派給另一個節點,那么先讓另一個節點刪除該槽>,然后再進行指派。
  • cluster setslot migrating <node_id> :將本節點的槽 slot 遷移到 node_id 指定的節點中。
  • cluster setslot importing <node_id> :從 node_id 指定的節點中導入槽 slot 到本節點。
  • cluster setslot stable :取消對槽 slot 的導入(import)或者遷移(migrate)。

11、鍵命令

  • cluster keyslot :計算鍵 key 應該被放置在哪個槽上。
  • cluster countkeysinslot :返回槽 slot 目前包含的鍵值對數量。
  • cluster getkeysinslot :返回 count 個 slot 槽中的鍵

12、數據遷移

12.1 擴容

擴容(添加新節點)過程中,數據遷移的主要步驟包含以下幾個部分:

12.1.1、啟動新節點

啟動新的 Redis 實例作為集群的節點:

redis-cli --cluster add-node 127.0.0.1:6380 127.0.0.1:6379
12.1.2、將新節點加入集群

使用 redis-cli 命令將新的節點加入現有集群:

redis-cli --cluster add-node 127.0.0.1:6380 127.0.0.1:6379
12.1.3、重新分配槽(resharding)

使用 redis-cli 工具重新分配哈希槽,這會觸發槽和數據的遷移:

redis-cli --cluster reshard 127.0.0.1:6379

交互過程中,指定將一定數量的哈希槽從現有節點遷移到新節點。

12.1.4、遷移數據:

redis-cli 自動處理哈希槽的遷移,并在后臺進行數據的移動。此遷移是漸進式的,不會中斷服務。

12.2 縮容

縮容(移除節點)過程中,數據遷移的主要步驟包含以下幾個部分:

12.2.1、觸發哈希槽轉移:

首先,確定需要移除的節點ID,獲取節點信息:

redis-cli --cluster nodes 127.0.0.1:6379
12.2.2、移動哈希槽到其他節點:

使用 redis-cli 工具將指定節點的槽遷移到其他節點:

redis-cli --cluster reshard 127.0.0.1:6379 --slots SLOT_NUMBER --from NODE_ID_TO_REMOVE --to TARGET_NODE_ID
12.2.3、關閉并移除節點:

當所有哈希槽和數據遷移完成后,安全地關閉并移除節點:

redis-cli --cluster del-node 127.0.0.1:6379 NODE_ID_TO_REMOVE

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

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

相關文章

TiDB 的優勢與劣勢

TiDB 的優勢與劣勢 TiDB 作為一款新興的分布式數據庫&#xff0c;在業界逐漸嶄露頭角。它兼具傳統關系型數據庫的特性&#xff0c;又充分利用分布式架構的優勢。那么&#xff0c;TiDB 究竟有怎樣的優缺點呢&#xff1f;今天我們來聊聊 TiDB 的優勢與劣勢&#xff0c;幫你全面了…

藍橋杯算法日常|c\c++常用競賽函數總結備用

一、字符處理相關函數 大小寫判斷函數 islower和isupper&#xff1a;是C標準庫中的字符分類函數&#xff0c;用于檢查一個字符是否為小寫字母或大寫字母&#xff0c;需包含頭文件cctype.h&#xff08;也可用萬能頭文件包含&#xff09;。返回布爾類型值。例如&#xff1a; #…

微服務知識——4大主流微服務架構方案

文章目錄 1、微服務聚合模式2、微服務共享模式3、微服務代理模式4、微服務異步消息模式 微服務是大型架構的必經之路&#xff0c;也是大廠重點考察對象&#xff0c;下面我就重點詳解4大主流微服務架構方案。 1、微服務聚合模式 微服務聚合設計模式&#xff0c;解決了如何從多個…

【HTML+CSS】使用HTML與后端技術連接數據庫

目錄 一、概述 1.1 HTML前端 1.2 后端技術 1.3 數據庫 二、HTML表單示例 三、PHP后端示例 3.1 連接數據庫 3.2 接收數據并插入數據庫 四、安全性 4.1 防止SQL注入 4.2 數據驗證與清洗 五、優化 5.1 索引優化 5.2 查詢優化 六、現代Web開發中的最佳實踐 6.1 使用…

T-SQL語言的數據庫編程

T-SQL語言的數據庫編程 1. 引言 在信息化迅速發展的今天&#xff0c;數據庫已經成為數據管理和使用的重要工具。其中&#xff0c;T-SQL&#xff08;Transact-SQL&#xff09;作為微軟SQL Server的擴展SQL語言&#xff0c;不僅用于數據查詢和管理&#xff0c;還能夠進行復雜的…

通信協議—WebSocket

一、WebSocket編程概念 1.1 什么是WebSocket WebSocket 是一種全雙工通信協議&#xff0c;允許在客戶端&#xff08;通常是瀏覽器&#xff09;和服務器之間建立持久連接&#xff0c;以實現實時的雙向通信。它是 HTML5 標準的一部分&#xff0c;相比傳統的 HTTP 請求&#xff…

cadence筆記--畫PMU6050原理圖和封裝

簡介 本文主要介紹使用Cadence自己畫一個PMU6050的原理圖PCB的實際用例&#xff0c;Cadence使用的是24.1版本。 原理圖 首先獲取PMU6050引腳參數&#xff0c;使用立創商城查詢PMU6050型號&#xff0c;點擊數據手冊如下圖所示&#xff1a; 如下圖所示&#xff0c;左邊是原理圖&…

CSS3 3D 轉換介紹

CSS3 中的 3D 轉換提供了一種在二維屏幕上呈現三維效果的方式&#xff0c;主要包括translate3d、rotate3d、scale3d等轉換函數&#xff0c;下面來詳細介紹&#xff1a; 1. 3D 轉換的基本概念 坐標系 在 CSS3 的 3D 空間中&#xff0c;使用的是右手坐標系。X 軸是水平方向&…

Text2SQL 智能報表方案介紹

0 背景 Text2SQL智能報表方案旨在通過自然語言處理&#xff08;NLP&#xff09;技術&#xff0c;使用戶能夠以自然語言的形式提出問題&#xff0c;并自動生成相應的SQL查詢&#xff0c;從而獲取所需的數據報表&#xff0c;用戶可根據得到結果展示分析從而為結論提供支撐&#…

FFmpeg音視頻采集

文章目錄 音視頻采集音頻采集獲取設備信息錄制麥克風錄制聲卡 視頻采集攝像機畫面采集 音視頻采集 DirectShow&#xff08;簡稱DShow&#xff09;是一個Windows平臺上的流媒體框架&#xff0c;提供了高質量的多媒體流采集和回放功能&#xff0c;它支持多種多樣的媒體文件格式&…

【漫話機器學習系列】056.F1值(F1 score)

F1值&#xff08;F1 Score&#xff09; 定義 F1值是機器學習中一種用于評估模型性能的指標&#xff0c;特別適合用于 不平衡數據集 的分類任務。它是 精確率&#xff08;Precision&#xff09; 和 召回率&#xff08;Recall&#xff09; 的調和平均值。通過綜合考慮精確率和召…

Mac安裝Homebrew

目錄 安裝修改homeBrew源常用命令安裝卸載軟件升級軟件相關清理相關 安裝 官網 https://brew.sh/不推薦官網安裝方式&#xff08;很慢很慢或者安裝失敗聯網失敗&#xff09; 檢測是否安裝homebrewbrew -v執行安裝命令 蘋果電腦 常規安裝腳本 &#xff08;推薦 完全體 幾分鐘就…

在K8S中,如果后端NFS存儲的IP發送變化如何解決?

在Kubernetes中&#xff0c;如果后端NFS存儲的IP地址發生了變化&#xff0c;您需要更新與之相關的Peristent Volume(PV)或Persistent Volume Claim(PVC)以及StorageClass中關于NFS服務器IP的配置信息&#xff0c;確保K8S集群內的Pod能夠正確連接到新的NFS存儲位置。解決方案如下…

一文大白話講清楚webpack基本使用——9——預加載之prefetch和preload以及webpackChunkName的使用

文章目錄 一文大白話講清楚webpack基本使用——9——預加載之prefetch和preload1. 建議按文章順序從頭看&#xff0c;一看到底&#xff0c;豁然開朗2. preload和prefetch的區別2. prefetch的使用3. preload的使用4. webpackChunkName 一文大白話講清楚webpack基本使用——9——…

【Elasticsearch 】 聚合分析:桶聚合

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家&#xff0c;歷代文學網&#xff08;PC端可以訪問&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移動端可微信小程序搜索“歷代文學”&#xff09;總架構師&#xff0c;15年工作經驗&#xff0c;精通Java編…

tensorflow源碼編譯在C++環境使用

https://tensorflow.google.cn/install/source?hlzh-cn查看tensorflow和其他需要下載軟件對應的版本&#xff0c;最好一模一樣 1、下載TensorFlow源碼 https://github.com/tensorflow/tensorflow 2、安裝編譯protobuf&#xff08;3.9.2&#xff09; protobuf版本要和TensorFlo…

P8738 [藍橋杯 2020 國 C] 天干地支

兩種方法 #include<bits/stdc.h> using namespace std;int main(){int year;cin>>year;string tg[10] {"geng", "xin", "ren", "gui","jia", "yi", "bing", "ding", "wu&…

Python 常用運維模塊之OS模塊篇

Python 常用運維模塊之OS模塊篇 OS 模塊獲取當前工作目錄更改當前工作目錄返回當前目錄路徑返回上一級目錄路徑遞歸生成目錄路徑刪除目錄創建目錄刪除目錄列出特定目錄下文件和子目錄刪除某個特定文件重命名某個文件獲取某個文件/目錄的信息輸出目錄路徑分隔符輸出文件行終止符…

uniapps使用HTML5的io模塊拷貝文件目錄

最近在集成sqlite到uniapp的過程中&#xff0c;因為要將sqlite數據庫預加載&#xff0c;所以需要使用HTML5的plus.io模塊。使用過程中遇到了許多問題&#xff0c;比如文件路徑總是解析不到等。尤其是應用私有文檔目錄’_doc’。 根據官方文檔&#xff1a; 為了安全管理應用的…

使用 F12 查看 Network 及數據格式

在瀏覽器中&#xff0c;F12 開發者工具的 “Network” 面板是用于查看網頁在加載過程中發起的所有網絡請求&#xff0c;包括 API 請求&#xff0c;以及查看這些請求的詳細信息和響應數據的。以下以常見的 Chrome 瀏覽器為例&#xff0c;介紹如何使用 F12 控制臺查看 Network 里…