久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Redis有哪些集群方案

148次閱讀
沒有評論

共計 10363 個字符,預計需要花費 26 分鐘才能閱讀完成。

Redis 有哪些集群方案,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

1. 基本原理

主從復制模式中包含一個主數(shù)據(jù)庫實例(master)與一個或多個從數(shù)據(jù)庫實例(slave),如下圖

客戶端可對主數(shù)據(jù)庫進行讀寫操作,對從數(shù)據(jù)庫進行讀操作,主數(shù)據(jù)庫寫入的數(shù)據(jù)會實時自動同步給從數(shù)據(jù)庫。

具體工作機制為:

鴻蒙官方戰(zhàn)略合作共建——HarmonyOS 技術(shù)社區(qū)

 slave 啟動后,向 master 發(fā)送 SYNC 命令,master 接收到 SYNC 命令后通過 bgsave 保存快照(即上文所介紹的 RDB 持久化),并使用緩沖區(qū)記錄保存快照這段時間內(nèi)執(zhí)行的寫命令

 master 將保存的快照文件發(fā)送給 slave,并繼續(xù)記錄執(zhí)行的寫命令

 slave 接收到快照文件后,加載快照文件,載入數(shù)據(jù)

 master 快照發(fā)送完后開始向 slave 發(fā)送緩沖區(qū)的寫命令,slave 接收命令并執(zhí)行,完成復制初始化

  此后 master 每次執(zhí)行一個寫命令都會同步發(fā)送給 slave,保持 master 與 slave 之間數(shù)據(jù)的一致性

2. 部署示例

本示例基于 Redis 5.0.3 版。

redis.conf 的主要配置

### 網(wǎng)絡相關(guān) ### # bind 127.0.0.1 #  綁定監(jiān)聽的網(wǎng)卡 IP,注釋掉或配置成 0.0.0.0 可使任意 IP 均可訪問  protected-mode no #  關(guān)閉保護模式,使用密碼訪問  port 6379 #  設置監(jiān)聽端口,建議生產(chǎn)環(huán)境均使用自定義端口  timeout 30 #  客戶端連接空閑多久后斷開連接,單位秒,0 表示禁用  ### 通用配置### daemonize yes #  在后臺運行  pidfile /var/run/redis_6379.pid # pid 進程文件名  logfile /usr/local/redis/logs/redis.log #  日志文件的位置  ###RDB 持久化配置### save 900 1 # 900s 內(nèi)至少一次寫操作則執(zhí)行 bgsave 進行 RDB 持久化  save 300 10 save 60 10000 #  如果禁用 RDB 持久化,可在這里添加  save   rdbcompression yes # 是否對 RDB 文件進行壓縮,建議設置為 no,以(磁盤)空間換(CPU)時間  dbfilename dump.rdb # RDB 文件名稱  dir /usr/local/redis/datas # RDB 文件保存路徑,AOF 文件也保存在這里  ###AOF 配置 ### appendonly yes #  默認值是 no,表示不使用 AOF 增量持久化的方式,使用 RDB 全量持久化的方式  appendfsync everysec #  可選值  always, everysec,no,建議設置為 everysec ### 設置密碼### requirepass 123456 #  設置復雜一點的密碼 

部署主從復制模式只需稍微調(diào)整 slave 的配置,在 redis.conf 中添加

replicaof 127.0.0.1 6379 # master 的 ip,port masterauth 123456 # master 的密碼  replica-serve-stale-data no #  如果 slave 無法與 master 同步,設置成 slave 不可讀,方便監(jiān)控腳本發(fā)現(xiàn)問題 

本示例在單臺服務器上配置 master 端口 6379,兩個 slave 端口分別為 7001,7002,啟動 master,再啟動兩個 slave

[root@dev-server-1 master-slave]# redis-server master.conf [root@dev-server-1 master-slave]# redis-server slave1.conf [root@dev-server-1 master-slave]# redis-server slave2.conf

進入 master 數(shù)據(jù)庫,寫入一個數(shù)據(jù),再進入一個 slave 數(shù)據(jù)庫,立即便可訪問剛才寫入 master 數(shù)據(jù)庫的數(shù)據(jù)。如下所示

[root@dev-server-1 master-slave]# redis-cli 127.0.0.1:6379  auth 123456 OK 127.0.0.1:6379  set site blog.jboost.cn OK 127.0.0.1:6379  get site  blog.jboost.cn  127.0.0.1:6379  info replication # Replication role:master connected_slaves:2 slave0:ip=127.0.0.1,port=7001,state=online,offset=13364738,lag=1 slave1:ip=127.0.0.1,port=7002,state=online,offset=13364738,lag=0 ... 127.0.0.1:6379  exit [root@dev-server-1 master-slave]# redis-cli -p 7001 127.0.0.1:7001  auth 123456 OK 127.0.0.1:7001  get site  blog.jboost.cn

執(zhí)行 info replication 命令可以查看連接該數(shù)據(jù)庫的其它庫的信息,如上可看到有兩個 slave 連接到 master

3. 主從復制的優(yōu)缺點

優(yōu)點:

鴻蒙官方戰(zhàn)略合作共建——HarmonyOS 技術(shù)社區(qū)

 master 能自動將數(shù)據(jù)同步到 slave,可以進行讀寫分離,分擔 master 的讀壓力

 master、slave 之間的同步是以非阻塞的方式進行的,同步期間,客戶端仍然可以提交查詢或更新請求

缺點:

鴻蒙官方戰(zhàn)略合作共建——HarmonyOS 技術(shù)社區(qū)

  不具備自動容錯與恢復功能,master 或 slave 的宕機都可能導致客戶端請求失敗,需要等待機器重啟或手動切換客戶端 IP 才能恢復

 master 宕機,如果宕機前數(shù)據(jù)沒有同步完,則切換 IP 后會存在數(shù)據(jù)不一致的問題

  難以支持在線擴容,Redis 的容量受限于單機配置

Sentinel(哨兵)模式

1. 基本原理

哨兵模式基于主從復制模式,只是引入了哨兵來監(jiān)控與自動處理故障。如圖

哨兵顧名思義,就是來為 Redis 集群站哨的,一旦發(fā)現(xiàn)問題能做出相應的應對處理。其功能包括

鴻蒙官方戰(zhàn)略合作共建——HarmonyOS 技術(shù)社區(qū)

  監(jiān)控 master、slave 是否正常運行

  當 master 出現(xiàn)故障時,能自動將一個 slave 轉(zhuǎn)換為 master(大哥掛了,選一個小弟上位)

  多個哨兵可以監(jiān)控同一個 Redis,哨兵之間也會自動監(jiān)控

哨兵模式的具體工作機制:

在配置文件中通過 sentinel monitor 來定位 master 的 IP、端口,一個哨兵可以監(jiān)控多個 master 數(shù)據(jù)庫,只需要提供多個該配置項即可。哨兵啟動后,會與要監(jiān)控的 master 建立兩條連接:

鴻蒙官方戰(zhàn)略合作共建——HarmonyOS 技術(shù)社區(qū)

  一條連接用來訂閱 master 的_sentinel_:hello 頻道與獲取其他監(jiān)控該 master 的哨兵節(jié)點信息

  另一條連接定期向 master 發(fā)送 INFO 等命令獲取 master 本身的信息

與 master 建立連接后,哨兵會執(zhí)行三個操作:

鴻蒙官方戰(zhàn)略合作共建——HarmonyOS 技術(shù)社區(qū)

  定期(一般 10s 一次,當 master 被標記為主觀下線時,改為 1s 一次)向 master 和 slave 發(fā)送 INFO 命令

  定期向 master 和 slave 的_sentinel_:hello 頻道發(fā)送自己的信息

  定期(1s 一次)向 master、slave 和其他哨兵發(fā)送 PING 命令

發(fā)送 INFO 命令可以獲取當前數(shù)據(jù)庫的相關(guān)信息從而實現(xiàn)新節(jié)點的自動發(fā)現(xiàn)。所以說哨兵只需要配置 master 數(shù)據(jù)庫信息就可以自動發(fā)現(xiàn)其 slave 信息。獲取到 slave 信息后,哨兵也會與 slave 建立兩條連接執(zhí)行監(jiān)控。通過 INFO 命令,哨兵可以獲取主從數(shù)據(jù)庫的最新信息,并進行相應的操作,比如角色變更等。

接下來哨兵向主從數(shù)據(jù)庫的 sentinel:hello 頻道發(fā)送信息與同樣監(jiān)控這些數(shù)據(jù)庫的哨兵共享自己的信息,發(fā)送內(nèi)容為哨兵的 ip 端口、運行 id、配置版本、master 名字、master 的 ip 端口還有 master 的配置版本。這些信息有以下用處:

鴻蒙官方戰(zhàn)略合作共建——HarmonyOS 技術(shù)社區(qū)

  其他哨兵可以通過該信息判斷發(fā)送者是否是新發(fā)現(xiàn)的哨兵,如果是的話會創(chuàng)建一個到該哨兵的連接用于發(fā)送 PING 命令。

  其他哨兵通過該信息可以判斷 master 的版本,如果該版本高于直接記錄的版本,將會更新

  當實現(xiàn)了自動發(fā)現(xiàn) slave 和其他哨兵節(jié)點后,哨兵就可以通過定期發(fā)送 PING 命令定時監(jiān)控這些數(shù)據(jù)庫和節(jié)點有沒有停止服務。

如果被 PING 的數(shù)據(jù)庫或者節(jié)點超時(通過 sentinel down-after-milliseconds master-name milliseconds 配置)未回復,哨兵認為其主觀下線(sdown,s 就是 Subjectively mdash; mdash; 主觀地)。如果下線的是 master,哨兵會向其它哨兵發(fā)送命令詢問它們是否也認為該 master 主觀下線,如果達到一定數(shù)目(即配置文件中的 quorum)投票,哨兵會認為該 master 已經(jīng)客觀下線(odown,o 就是 Objectively mdash; mdash; 客觀地),并選舉領(lǐng)頭的哨兵節(jié)點對主從系統(tǒng)發(fā)起故障恢復。若沒有足夠的 sentinel 進程同意 master 下線,master 的客觀下線狀態(tài)會被移除,若 master 重新向 sentinel 進程發(fā)送的 PING 命令返回有效回復,master 的主觀下線狀態(tài)就會被移除

哨兵認為 master 客觀下線后,故障恢復的操作需要由選舉的領(lǐng)頭哨兵來執(zhí)行,選舉采用 Raft 算法:

鴻蒙官方戰(zhàn)略合作共建——HarmonyOS 技術(shù)社區(qū)

  發(fā)現(xiàn) master 下線的哨兵節(jié)點(我們稱他為 A)向每個哨兵發(fā)送命令,要求對方選自己為領(lǐng)頭哨兵

  如果目標哨兵節(jié)點沒有選過其他人,則會同意選舉 A 為領(lǐng)頭哨兵

  如果有超過一半的哨兵同意選舉 A 為領(lǐng)頭,則 A 當選

  如果有多個哨兵節(jié)點同時參選領(lǐng)頭,此時有可能存在一輪投票無競選者勝出,此時每個參選的節(jié)點等待一個隨機時間后再次發(fā)起參選請求,進行下一輪投票競選,直至選舉出領(lǐng)頭哨兵

選出領(lǐng)頭哨兵后,領(lǐng)頭者開始對系統(tǒng)進行故障恢復,從出現(xiàn)故障的 master 的從數(shù)據(jù)庫中挑選一個來當選新的 master, 選擇規(guī)則如下:

鴻蒙官方戰(zhàn)略合作共建——HarmonyOS 技術(shù)社區(qū)

  所有在線的 slave 中選擇優(yōu)先級最高的,優(yōu)先級可以通過 slave-priority 配置

  如果有多個最高優(yōu)先級的 slave,則選取復制偏移量最大(即復制越完整)的當選

  如果以上條件都一樣,選取 id 最小的 slave

挑選出需要繼任的 slave 后,領(lǐng)頭哨兵向該數(shù)據(jù)庫發(fā)送命令使其升格為 master,然后再向其他 slave 發(fā)送命令接受新的 master,最后更新數(shù)據(jù)。將已經(jīng)停止的舊的 master 更新為新的 master 的從數(shù)據(jù)庫,使其恢復服務后以 slave 的身份繼續(xù)運行。

2. 部署演示

本示例基于 Redis 5.0.3 版。

哨兵模式基于前文的主從復制模式。哨兵的配置文件為 sentinel.conf,在文件中添加

sentinel monitor mymaster 127.0.0.1 6379 1 # mymaster 定義一個 master 數(shù)據(jù)庫的名稱,后面是 master 的 ip, port,1 表示至少需要一個 Sentinel 進程同意才能將 master 判斷為失效,如果不滿足這個條件,則自動故障轉(zhuǎn)移(failover)不會執(zhí)行  sentinel auth-pass mymaster 123456 # master 的密碼  sentinel down-after-milliseconds mymaster 5000 # 5s 未回復 PING,則認為 master 主觀下線,默認為 30s sentinel parallel-syncs mymaster 2 #  指定在執(zhí)行故障轉(zhuǎn)移時,最多可以有多少個 slave 實例在同步新的 master 實例,在 slave 實例較多的情況下這個數(shù)字越小,同步的時間越長,完成故障轉(zhuǎn)移所需的時間就越長  sentinel failover-timeout mymaster 300000 #  如果在該時間(ms)內(nèi)未能完成故障轉(zhuǎn)移操作,則認為故障轉(zhuǎn)移失敗,生產(chǎn)環(huán)境需要根據(jù)數(shù)據(jù)量設置該值 

一個哨兵可以監(jiān)控多個 master 數(shù)據(jù)庫,只需按上述配置添加多套

分別以 26379,36379,46379 端口啟動三個 sentinel

[root@dev-server-1 sentinel]# redis-server sentinel1.conf --sentinel [root@dev-server-1 sentinel]# redis-server sentinel2.conf --sentinel [root@dev-server-1 sentinel]# redis-server sentinel3.conf --sentinel

也可以使用 redis-sentinel sentinel1.conf 命令啟動。此時集群包含一個 master、兩個 slave、三個 sentinel,如圖,

我們來模擬 master 掛掉的場景,執(zhí)行 kill -9 3017 將 master 進程干掉,進入 slave 中執(zhí)行 info replication 查看,

[root@dev-server-1 sentinel]# redis-cli -p 7001 127.0.0.1:7001  auth 123456 OK 127.0.0.1:7001  info replication # Replication role:slave master_host:127.0.0.1 master_port:7002 master_link_status:up master_last_io_seconds_ago:1 master_sync_in_progress:0 #  省略  127.0.0.1:7001  exit [root@dev-server-1 sentinel]# redis-cli -p 7002 127.0.0.1:7002  auth 123456 OK 127.0.0.1:7002  info replication # Replication role:master connected_slaves:1 slave0:ip=127.0.0.1,port=7001,state=online,offset=13642721,lag=1 #  省略 

可以看到 slave 7002 已經(jīng)成功上位晉升為 master(role:master),接收一個 slave 7001 的連接。此時查看 slave2.conf 配置文件,發(fā)現(xiàn) replicaof 的配置已經(jīng)被移除了,slave1.conf 的配置文件里 replicaof 127.0.0.1 6379 被改為 replicaof 127.0.0.1 7002。重新啟動 master,也可以看到 master.conf 配置文件中添加了 replicaof 127.0.0.1 7002 的配置項,可見大哥(master)下位后,再出來混就只能當當小弟(slave)了,三十年河東三十年河西。

3. 哨兵模式的優(yōu)缺點

優(yōu)點:

鴻蒙官方戰(zhàn)略合作共建——HarmonyOS 技術(shù)社區(qū)

  哨兵模式基于主從復制模式,所以主從復制模式有的優(yōu)點,哨兵模式也有

  哨兵模式下,master 掛掉可以自動進行切換,系統(tǒng)可用性更高

缺點:

鴻蒙官方戰(zhàn)略合作共建——HarmonyOS 技術(shù)社區(qū)

  同樣也繼承了主從模式難以在線擴容的缺點,Redis 的容量受限于單機配置

  需要額外的資源來啟動 sentinel 進程,實現(xiàn)相對復雜一點,同時 slave 節(jié)點作為備份節(jié)點不提供服務

Cluster 模式

1. 基本原理

哨兵模式解決了主從復制不能自動故障轉(zhuǎn)移,達不到高可用的問題,但還是存在難以在線擴容,Redis 容量受限于單機配置的問題。Cluster 模式實現(xiàn)了 Redis 的分布式存儲,即每臺節(jié)點存儲不同的內(nèi)容,來解決在線擴容的問題。如圖

Cluster 采用無中心結(jié)構(gòu), 它的特點如下:

鴻蒙官方戰(zhàn)略合作共建——HarmonyOS 技術(shù)社區(qū)

  所有的 redis 節(jié)點彼此互聯(lián) (PING-PONG 機制), 內(nèi)部使用二進制協(xié)議優(yōu)化傳輸速度和帶寬

  節(jié)點的 fail 是通過集群中超過半數(shù)的節(jié)點檢測失效時才生效

  客戶端與 redis 節(jié)點直連, 不需要中間代理層. 客戶端不需要連接集群所有節(jié)點, 連接集群中任何一個可用節(jié)點即可

Cluster 模式的具體工作機制:

    1.  在 Redis 的每個節(jié)點上,都有一個插槽(slot),取值范圍為 0 -16383

    2.  當我們存取 key 的時候,Redis 會根據(jù) CRC16 的算法得出一個結(jié)果,然后把結(jié)果對 16384 求余數(shù),這樣每個 key 都會對應一個編號在 0 -16383 之間的哈希槽,通過這個值,去找到對應的插槽所對應的節(jié)點,然后直接自動跳轉(zhuǎn)到這個對應的節(jié)點上進行存取操作

    3.  為了保證高可用,Cluster 模式也引入主從復制模式,一個主節(jié)點對應一個或者多個從節(jié)點,當主節(jié)點宕機的時候,就會啟用從節(jié)點

    4.  當其它主節(jié)點 ping 一個主節(jié)點 A 時,如果半數(shù)以上的主節(jié)點與 A 通信超時,那么認為主節(jié)點 A 宕機了。如果主節(jié)點 A 和它的從節(jié)點都宕機了,那么該集群就無法再提供服務了

Cluster 模式集群節(jié)點最小配置 6 個節(jié)點 (3 主 3 從,因為需要半數(shù)以上),其中主節(jié)點提供讀寫操作,從節(jié)點作為備用節(jié)點,不提供請求,只作為故障轉(zhuǎn)移使用。

2. 部署演示

本示例基于 Redis 5.0.3 版。

Cluster 模式的部署比較簡單,首先在 redis.conf 中

port 7100 #  本示例 6 個節(jié)點端口分別為 7100,7200,7300,7400,7500,7600 daemonize yes # r 后臺運行  pidfile /var/run/redis_7100.pid # pidfile 文件對應 7100,7200,7300,7400,7500,7600 cluster-enabled yes #  開啟集群模式  masterauth passw0rd #  如果設置了密碼,需要指定 master 密碼  cluster-config-file nodes_7100.conf #  集群的配置文件,同樣對應 7100,7200 等六個節(jié)點  cluster-node-timeout 15000 #  請求超時   默認 15 秒,可自行設置 

分別以端口 7100,7200,7300,7400,7500,7600 啟動六個實例 (如果是每個服務器一個實例則配置可一樣)

[root@dev-server-1 cluster]# redis-server redis_7100.conf [root@dev-server-1 cluster]# redis-server redis_7200.conf ...

然后通過命令將這個 6 個實例組成一個 3 主節(jié)點 3 從節(jié)點的集群,

redis-cli --cluster create --cluster-replicas 1 127.0.0.1:7100 127.0.0.1:7200 127.0.0.1:7300 127.0.0.1:7400 127.0.0.1:7500 127.0.0.1:7600 -a passw0rd

執(zhí)行結(jié)果如圖

可以看到 7100,7200,7300 作為 3 個主節(jié)點,分配的 slot 分別為 0-5460,5461-10922,10923-16383,7600 作為 7100 的 slave,7500 作為 7300 的 slave,7400 作為 7200 的 slave。

我們連接 7100 設置一個值

[root@dev-server-1 cluster]# redis-cli -p 7100 -c -a passw0rd Warning: Using a password with  -a  or  -u  option on the command line interface may not be safe. 127.0.0.1:7100  set site blog.jboost.cn -  Redirected to slot [9421] located at 127.0.0.1:7200 OK 127.0.0.1:7200  get site  blog.jboost.cn  127.0.0.1:7200

注意添加 -c 參數(shù)表示以集群模式,否則報 (error) MOVED 9421 127.0.0.1:7200 錯誤,以 -a 參數(shù)指定密碼,否則報 (error) NOAUTH Authentication required 錯誤。

從上面命令看到 key 為 site 算出的 slot 為 9421,落在 7200 節(jié)點上,所以有 Redirected to slot [9421] located at 127.0.0.1:7200,集群會自動進行跳轉(zhuǎn)。因此客戶端可以連接任何一個節(jié)點來進行數(shù)據(jù)的存取。

通過 cluster nodes 可查看集群的節(jié)點信息

127.0.0.1:7200  cluster nodes eb28aaf090ed1b6b05033335e3d90a202b422d6c 127.0.0.1:7500@17500 slave c1047de2a1b5d5fa4666d554376ca8960895a955 0 1584165266071 5 connected 4cc0463878ae00e5dcf0b36c4345182e021932bc 127.0.0.1:7400@17400 slave 5544aa5ff20f14c4c3665476de6e537d76316b4a 0 1584165267074 4 connected dbbb6420d64db22f35a9b6fa460b0878c172a2fb 127.0.0.1:7100@17100 master - 0 1584165266000 1 connected 0-5460 d4b434f5829e73e7e779147e905eea6247ffa5a2 127.0.0.1:7600@17600 slave dbbb6420d64db22f35a9b6fa460b0878c172a2fb 0 1584165265000 6 connected 5544aa5ff20f14c4c3665476de6e537d76316b4a 127.0.0.1:7200@17200 myself,master - 0 1584165267000 2 connected 5461-10922 c1047de2a1b5d5fa4666d554376ca8960895a955 127.0.0.1:7300@17300 master - 0 1584165268076 3 connected 10923-16383

我們將 7200 通過 kill -9 pid 殺死進程來驗證集群的高可用,重新進入集群執(zhí)行 cluster nodes 可以看到 7200 fail 了,但是 7400 成了 master,重新啟動 7200,可以看到此時 7200 已經(jīng)變成了 slave。

3. Cluster 模式的優(yōu)缺點

優(yōu)點:

    1.  無中心架構(gòu),數(shù)據(jù)按照 slot 分布在多個節(jié)點。

    2.  集群中的每個節(jié)點都是平等的關(guān)系,每個節(jié)點都保存各自的數(shù)據(jù)和整個集群的狀態(tài)。每個節(jié)點都和其他所有節(jié)點連接,而且這些連接保持活躍,這樣就保證了我們只需要連接集群中的任意一個節(jié)點,就可以獲取到其他節(jié)點的數(shù)據(jù)。

    3.  可線性擴展到 1000 多個節(jié)點,節(jié)點可動態(tài)添加或刪除

    4.  能夠?qū)崿F(xiàn)自動故障轉(zhuǎn)移,節(jié)點之間通過 gossip 協(xié)議交換狀態(tài)信息,用投票機制完成 slave 到 master 的角色轉(zhuǎn)換

缺點:

鴻蒙官方戰(zhàn)略合作共建——HarmonyOS 技術(shù)社區(qū)

  客戶端實現(xiàn)復雜,驅(qū)動要求實現(xiàn) Smart Client,緩存 slots mapping 信息并及時更新,提高了開發(fā)難度。目前僅 JedisCluster 相對成熟,異常處理還不完善,比如常見的“max redirect exception”

  節(jié)點會因為某些原因發(fā)生阻塞(阻塞時間大于 cluster-node-timeout)被判斷下線,這種 failover 是沒有必要的

  數(shù)據(jù)通過異步復制,不保證數(shù)據(jù)的強一致性

 slave 充當“冷備”,不能緩解讀壓力

  批量操作限制,目前只支持具有相同 slot 值的 key 執(zhí)行批量操作,對 mset、mget、sunion 等操作支持不友好

 key 事務操作支持有線,只支持多 key 在同一節(jié)點的事務操作,多 key 分布不同節(jié)點時無法使用事務功能

  不支持多數(shù)據(jù)庫空間,單機 redis 可以支持 16 個 db,集群模式下只能使用一個,即 db 0

Redis Cluster 模式不建議使用 pipeline 和 multi-keys 操作,減少 max redirect 產(chǎn)生的場景。

關(guān)于 Redis 有哪些集群方案問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注丸趣 TV 行業(yè)資訊頻道了解更多相關(guān)知識。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-03發(fā)表,共計10363字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 梅河口市| 澄城县| 忻州市| 枣阳市| 朝阳县| 林口县| 涿鹿县| 文昌市| 牡丹江市| 桦川县| 黔南| 仁布县| 岳阳县| 原平市| 钦州市| 隆安县| 文安县| 赫章县| 永济市| 县级市| 鲁山县| 乌拉特中旗| 光山县| 华蓥市| 东至县| 江西省| 英德市| 博乐市| 观塘区| 虎林市| 任丘市| 岢岚县| 洛扎县| 区。| 丹寨县| 石河子市| 自治县| 岳西县| 吴桥县| 西平县| 景泰县|