免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
【Redis24】Redis進(jìn)階:分布式部署RedisCluster(二)

Redis進(jìn)階:分布式部署RedisCluster(二)

上回學(xué)習(xí)的到內(nèi)容大家自己試了沒?搭建起來應(yīng)該難度不大的,今天我們就繼續(xù)學(xué)習(xí)。分布式開發(fā)中,最常見的一個(gè)問題就是怎么擴(kuò)展。本身我們做分布式,就是因?yàn)閱螜C(jī)處理性能不夠,通過多機(jī)來并行處理,就你是單線程和多線程的區(qū)別。

對(duì)于應(yīng)用實(shí)例還好說,畢竟業(yè)務(wù)處理將流量分走就好了,大家干的是一樣的事,但是對(duì)于存儲(chǔ)系統(tǒng)來說,就有一個(gè)很大的問題:數(shù)據(jù)應(yīng)該落在哪里?

就拿 MySQL 的分表來說,本來分的 8 張表,隨著時(shí)間的推移和數(shù)據(jù)量的積累,現(xiàn)在要擴(kuò)充到 16 或者 32 張表了,天啊,想想都頭大,這一堆數(shù)據(jù)怎么遷移?之前的數(shù)據(jù)中,分表主鍵的 Hash 從 %8 變成了 %16 %32 ,很多數(shù)據(jù)都要重新遷移啊。

目前市面上,要么一開始就干它 100 張表,要么就是一致性哈希,其實(shí) Redis 中的 Solt 就是一致性哈希的概念,新加入的節(jié)點(diǎn),我們只需要向它分配槽就行了,畢竟槽的數(shù)量是有限的。這樣,在節(jié)點(diǎn)之間的數(shù)據(jù)遷移就只需要將新節(jié)點(diǎn)分配到的槽中的數(shù)據(jù)遷移過去就好了。

因此,整個(gè) Cluster 的節(jié)點(diǎn)操作,其實(shí)就要分成兩步,一個(gè)是節(jié)點(diǎn)的添加刪除,另一個(gè)就是添加后和刪除前要進(jìn)行槽的分配,從而實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)移以及定位。

添加刪除節(jié)點(diǎn)與分槽操作

先來看怎么添加節(jié)點(diǎn),我們直接看一下 --cluster 命令參數(shù)還有哪些子參數(shù)可以用。

? redis-cli --cluster help
Cluster Manager Commands:
  create         host1:port1 ... hostN:portN
                 --cluster-replicas <arg>
  check          host:port
                 --cluster-search-multiple-owners
  info           host:port
  fix            host:port
                 --cluster-search-multiple-owners
                 --cluster-fix-with-unreachable-masters
  reshard        host:port
                 --cluster-from <arg>
                 --cluster-to <arg>
                 --cluster-slots <arg>
                 --cluster-yes
                 --cluster-timeout <arg>
                 --cluster-pipeline <arg>
                 --cluster-replace
  rebalance      host:port
                 --cluster-weight <node1=w1...nodeN=wN>
                 --cluster-use-empty-masters
                 --cluster-timeout <arg>
                 --cluster-simulate
                 --cluster-pipeline <arg>
                 --cluster-threshold <arg>
                 --cluster-replace
  add-node       new_host:new_port existing_host:existing_port
                 --cluster-slave
                 --cluster-master-id <arg>
  del-node       host:port node_id
  call           host:port command arg arg .. arg
                 --cluster-only-masters
                 --cluster-only-replicas
  set-timeout    host:port milliseconds
  import         host:port
                 --cluster-from <arg>
                 --cluster-from-user <arg>
                 --cluster-from-pass <arg>
                 --cluster-from-askpass
                 --cluster-copy
                 --cluster-replace
  backup         host:port backup_directory
  help

For check, fix, reshard, del-node, set-timeout you can specify the host and port of any working node in the cluster.

Cluster Manager Options:
  --cluster-yes  Automatic yes to cluster commands prompts

是不是感覺又發(fā)現(xiàn)新大陸了,上次我們只是用了一個(gè) create 命令而已,還有這一大堆命令呢。別的不說,從名字就發(fā)現(xiàn)了 add-node是添加節(jié)點(diǎn),del-node是刪除節(jié)點(diǎn)。

添加新節(jié)點(diǎn)

首先還是先建立配置文件和啟動(dòng)普通實(shí)例,這一塊就不多說了,直接配置和啟動(dòng) 6382 以及 7382 實(shí)例。然后我們先添加主節(jié)點(diǎn)。

? redis-cli --cluster add-node 127.0.0.1:6382 127.0.0.1:6379
>>> Adding node 127.0.0.1:6382 to cluster 127.0.0.1:6379
>>> Performing Cluster Check (using node 127.0.0.1:6379)
M: 1d48fc74ac96354c19a454bddbbf9b1dac62ac21 127.0.0.1:6379
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
S: 0bef7a24915f5e3c69cc70e7e51443f5a214cf7b 127.0.0.1:7380
   slots: (0 slots) slave
   replicates 1d48fc74ac96354c19a454bddbbf9b1dac62ac21
S: 47cf0ad16ddb3b80d8055334434dffd7f74229cc 127.0.0.1:6381
   slots: (0 slots) slave
   replicates 8d0be91ca6c5e809f3915e23a2ab26d8b14fe5ed
M: 1adc88d15f82dc793e122cb274a1ba312c62d9c4 127.0.0.1:6380
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
M: 8d0be91ca6c5e809f3915e23a2ab26d8b14fe5ed 127.0.0.1:7379
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: e39a71d3484308bcc1fda21d5f919b9e707e21f0 127.0.0.1:7381
   slots: (0 slots) slave
   replicates 1adc88d15f82dc793e122cb274a1ba312c62d9c4
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 127.0.0.1:6382 to make it join the cluster.
[OK] New node added correctly.

命令很簡單,add-node 后面跟著兩個(gè)參數(shù),第一個(gè)是新節(jié)點(diǎn),第二是已有集群中隨便一個(gè)節(jié)點(diǎn)就可以了。這就添加完成了,我們看一下當(dāng)前集群的信息。

? redis-cli -p 6382
127.0.0.1:6382> CLUSTER NODES
47cf0ad16ddb3b80d8055334434dffd7f74229cc 127.0.0.1:6381@16381 slave 8d0be91ca6c5e809f3915e23a2ab26d8b14fe5ed 0 1656470300000 7 connected
0bef7a24915f5e3c69cc70e7e51443f5a214cf7b 127.0.0.1:7380@17380 slave 1d48fc74ac96354c19a454bddbbf9b1dac62ac21 0 1656470300620 1 connected
# 6382
19fbf50b3536d2ab18a116bfa1e15f424df9af25 127.0.0.1:6382@16382 myself,master - 0 1656470299000 0 connected
1d48fc74ac96354c19a454bddbbf9b1dac62ac21 127.0.0.1:6379@16379 master - 0 1656470300116 1 connected 0-5460
8d0be91ca6c5e809f3915e23a2ab26d8b14fe5ed 127.0.0.1:7379@17379 master - 0 1656470301000 7 connected 10923-16383
1adc88d15f82dc793e122cb274a1ba312c62d9c4 127.0.0.1:6380@16380 master - 0 1656470300620 2 connected 5461-10922
e39a71d3484308bcc1fda21d5f919b9e707e21f0 127.0.0.1:7381@17381 slave 1adc88d15f82dc793e122cb274a1ba312c62d9c4 0 1656470301632 2 connected

可以看到,當(dāng)前的節(jié)點(diǎn)已經(jīng)連接上了,啥都正常,但是,它沒有槽的信息。如果沒有槽信息,Key 也就不會(huì)分配到這個(gè)節(jié)點(diǎn)上,目前這個(gè)節(jié)點(diǎn)還是廢物階段,那么我們就來配置它的 Solt 。

為新節(jié)點(diǎn)分配槽

為節(jié)點(diǎn)分配槽信息,使用的是 --cluster reshard命令參數(shù)。

? redis-cli --cluster reshard 127.0.0.1:6382
## 當(dāng)前集群信息
>>> Performing Cluster Check (using node 127.0.0.1:6382)
M: 19fbf50b3536d2ab18a116bfa1e15f424df9af25 127.0.0.1:6382
   slots: (0 slots) master
S: 47cf0ad16ddb3b80d8055334434dffd7f74229cc 127.0.0.1:6381
   slots: (0 slots) slave
   replicates 8d0be91ca6c5e809f3915e23a2ab26d8b14fe5ed
S: 0bef7a24915f5e3c69cc70e7e51443f5a214cf7b 127.0.0.1:7380
   slots: (0 slots) slave
   replicates 1d48fc74ac96354c19a454bddbbf9b1dac62ac21
M: 1d48fc74ac96354c19a454bddbbf9b1dac62ac21 127.0.0.1:6379
   slots:[333-5460] (5128 slots) master
   1 additional replica(s)
M: 8d0be91ca6c5e809f3915e23a2ab26d8b14fe5ed 127.0.0.1:7379
   slots:[11256-16383] (5128 slots) master
   1 additional replica(s)
M: 1adc88d15f82dc793e122cb274a1ba312c62d9c4 127.0.0.1:6380
   slots:[5795-10922] (5128 slots) master
   1 additional replica(s)
S: e39a71d3484308bcc1fda21d5f919b9e707e21f0 127.0.0.1:7381
   slots: (0 slots) slave
   replicates 1adc88d15f82dc793e122cb274a1ba312c62d9c4
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
## 想要移動(dòng)多少到新的節(jié)點(diǎn)?
How many slots do you want to move (from 1 to 16384)? 1000
## 接收的 ID 是多少?就是新添加節(jié)點(diǎn)的 ID
What is the receiving node ID? 19fbf50b3536d2ab18a116bfa1e15f424df9af25
## 確認(rèn)槽點(diǎn)的來源,all 表示所有節(jié)點(diǎn)平均搞 1000 個(gè)過來
Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1: all
## 開始檢查 
……………………
 Moving slot 6119 from 1adc88d15f82dc793e122cb274a1ba312c62d9c4
 Moving slot 6120 from 1adc88d15f82dc793e122cb274a1ba312c62d9c4
 Moving slot 6121 from 1adc88d15f82dc793e122cb274a1ba312c62d9c4
 Moving slot 6122 from 1adc88d15f82dc793e122cb274a1ba312c62d9c4
 Moving slot 6123 from 1adc88d15f82dc793e122cb274a1ba312c62d9c4
 Moving slot 6124 from 1adc88d15f82dc793e122cb274a1ba312c62d9c4
……………………
## 確定按這個(gè)分槽計(jì)劃來?
Do you want to proceed with the proposed reshard plan (yes/no)? yes
……………………
Moving slot 11253 from 127.0.0.1:7379 to 127.0.0.1:6382:
Moving slot 11254 from 127.0.0.1:7379 to 127.0.0.1:6382:
……………………

內(nèi)容比較長,所以我也添加了注釋,不過咱們還是來一條一條的看一下。

  • How many slots do you want to move (from 1 to 16384)? 1000 表示要給它多少槽,這里我給了 1000 個(gè)槽過來
  • What is the receiving node ID? 誰來接收這 1000 個(gè)槽,當(dāng)然是新添加的這個(gè)節(jié)點(diǎn)的 ID
  • Please enter all the source node IDs 從哪些節(jié)點(diǎn)分配槽過來?all 就是其它所有節(jié)點(diǎn)平均分配,也可以填 ID 最后再加個(gè) done 完成這一塊的配置
  • 接著輸出一堆移動(dòng)的計(jì)劃,比如 6119 從 1adc88d15f82dc793e122cb274a1ba312c62d9c4 也就是 6379 分過來
  • Do you want to proceed with the proposed reshard plan (yes/no)? yes 確定這么分?yes 之后就開始正式分槽了,數(shù)據(jù)也就跟著槽帶過來了

好了,現(xiàn)在看下 6382 上是不是有數(shù)據(jù)了。

?  redis-cli -c -p 6382
127.0.0.1:6382> keys *
1) "{user:1:}bb"
2) "{user:1:}aa"
3) "{user:2:}aa"
4) "{user:2:}bb"

127.0.0.1:6382> CLUSTER NODES
47cf0ad16ddb3b80d8055334434dffd7f74229cc 127.0.0.1:6381@16381 slave 8d0be91ca6c5e809f3915e23a2ab26d8b14fe5ed 0 1656471120293 7 connected
0bef7a24915f5e3c69cc70e7e51443f5a214cf7b 127.0.0.1:7380@17380 slave 1d48fc74ac96354c19a454bddbbf9b1dac62ac21 0 1656471121811 1 connected
19fbf50b3536d2ab18a116bfa1e15f424df9af25 127.0.0.1:6382@16382 myself,master - 0 1656471120000 8 connected 0-332 5461-5794 10923-11255
1d48fc74ac96354c19a454bddbbf9b1dac62ac21 127.0.0.1:6379@16379 master - 0 1656471120000 1 connected 333-5460
8d0be91ca6c5e809f3915e23a2ab26d8b14fe5ed 127.0.0.1:7379@17379 master - 0 1656471119788 7 connected 11256-16383
1adc88d15f82dc793e122cb274a1ba312c62d9c4 127.0.0.1:6380@16380 master - 0 1656471121304 2 connected 5795-10922
e39a71d3484308bcc1fda21d5f919b9e707e21f0 127.0.0.1:7381@17381 slave 1adc88d15f82dc793e122cb274a1ba312c62d9c4 0 1656471121000 2 connected

再看一下 NODES 信息,四臺(tái)主庫,新添加的主庫槽信息有點(diǎn)亂,是啊,畢竟是其它三臺(tái)平均分過來的,所以新主庫的槽信息是 0-332 5461-5794 10923-11255這個(gè)樣子的。

添加新的從庫

新來的兄弟有點(diǎn)孤單啊,咱們給它把從庫加上怎么樣?讓 7382 成為它的從庫,非常簡單。

?  redis-cli --cluster add-node 127.0.0.1:7382 127.0.0.1:6382 --cluster-slave --cluster-master-id 19fbf50b3536d2ab18a116bfa1e15f424df9af25

再來看 NODES 的信息。嗯,完美,數(shù)據(jù)也同步復(fù)制到從庫了。

? redis-cli -c -p 7382
127.0.0.1:7382> CLUSTER NODES
47cf0ad16ddb3b80d8055334434dffd7f74229cc 127.0.0.1:6381@16381 slave 8d0be91ca6c5e809f3915e23a2ab26d8b14fe5ed 0 1656471293998 7 connected
8d0be91ca6c5e809f3915e23a2ab26d8b14fe5ed 127.0.0.1:7379@17379 master - 0 1656471294000 7 connected 11256-16383
19fbf50b3536d2ab18a116bfa1e15f424df9af25 127.0.0.1:6382@16382 master - 0 1656471294000 8 connected 0-332 5461-5794 10923-11255
e39a71d3484308bcc1fda21d5f919b9e707e21f0 127.0.0.1:7381@17381 slave 1adc88d15f82dc793e122cb274a1ba312c62d9c4 0 1656471292583 2 connected
0bef7a24915f5e3c69cc70e7e51443f5a214cf7b 127.0.0.1:7380@17380 slave 1d48fc74ac96354c19a454bddbbf9b1dac62ac21 0 1656471293593 1 connected
b09db43f11a3cd0b3e994d8780bca6b7faf4eb85 127.0.0.1:7382@17382 myself,slave 19fbf50b3536d2ab18a116bfa1e15f424df9af25 0 1656471293000 8 connected
1adc88d15f82dc793e122cb274a1ba312c62d9c4 127.0.0.1:6380@16380 master - 0 1656471294099 2 connected 5795-10922
1d48fc74ac96354c19a454bddbbf9b1dac62ac21 127.0.0.1:6379@16379 master - 0 1656471292583 1 connected 333-5460

127.0.0.1:7382> keys *
1) "{user:2:}aa"
2) "{user:2:}bb"
3) "{user:1:}aa"
4) "{user:1:}bb"

刪除節(jié)點(diǎn)

好了,接下來咱們就再試試怎么刪除剛剛新添加的節(jié)點(diǎn)。使用的是 --cluster del-node 命令參數(shù)。

? redis-cli --cluster del-node 127.0.0.1:7382 b09db43f11a3cd0b3e994d8780bca6b7faf4eb85
>>> Removing node b09db43f11a3cd0b3e994d8780bca6b7faf4eb85 from cluster 127.0.0.1:7382
>>> Sending CLUSTER FORGET messages to the cluster...
>>> Sending CLUSTER RESET SOFT to the deleted node.

? redis-cli -c -p 7382
127.0.0.1:7382> CLUSTER NODES
b09db43f11a3cd0b3e994d8780bca6b7faf4eb85 127.0.0.1:7382@17382 myself,master - 0 1656471407000 0 connected

刪除從庫沒壓力,直接就刪了,再登進(jìn) 7382 看的話,它現(xiàn)在就是自己一個(gè)孤家寡人了。當(dāng)然,原來的集群中也沒有它的信息了。

? redis-cli -c -p 6382
127.0.0.1:6382> CLUSTER NODES
47cf0ad16ddb3b80d8055334434dffd7f74229cc 127.0.0.1:6381@16381 slave 8d0be91ca6c5e809f3915e23a2ab26d8b14fe5ed 0 1656471472540 7 connected
0bef7a24915f5e3c69cc70e7e51443f5a214cf7b 127.0.0.1:7380@17380 slave 1d48fc74ac96354c19a454bddbbf9b1dac62ac21 0 1656471472642 1 connected
19fbf50b3536d2ab18a116bfa1e15f424df9af25 127.0.0.1:6382@16382 myself,master - 0 1656471471000 8 connected 0-332 5461-5794 10923-11255
1d48fc74ac96354c19a454bddbbf9b1dac62ac21 127.0.0.1:6379@16379 master - 0 1656471472000 1 connected 333-5460
8d0be91ca6c5e809f3915e23a2ab26d8b14fe5ed 127.0.0.1:7379@17379 master - 0 1656471472000 7 connected 11256-16383
1adc88d15f82dc793e122cb274a1ba312c62d9c4 127.0.0.1:6380@16380 master - 0 1656471471126 2 connected 5795-10922
e39a71d3484308bcc1fda21d5f919b9e707e21f0 127.0.0.1:7381@17381 slave 1adc88d15f82dc793e122cb274a1ba312c62d9c4 0 1656471472136 2 connected

好了,我們?cè)賮韯h 6382 這臺(tái)主庫。

? redis-cli --cluster del-node 127.0.0.1:6382 19fbf50b3536d2ab18a116bfa1e15f424df9af25
>>> Removing node 19fbf50b3536d2ab18a116bfa1e15f424df9af25 from cluster 127.0.0.1:6382
[ERR] Node 127.0.0.1:6382 is not empty! Reshard data away and try again.

踫到問題了吧,現(xiàn)在的 6382 上是有槽數(shù)據(jù)的,如果已經(jīng)分配了槽,那么這個(gè)節(jié)點(diǎn)是不能直接被刪除的。首先,數(shù)據(jù)會(huì)丟,其次,這些槽也不知道該跟誰了。因此,我們需要先把槽轉(zhuǎn)給別人。還是使用 --cluster reshard來操作。

………………
# 要移動(dòng)多少槽?
How many slots do you want to move (from 1 to 16384)? 16384
# 給誰?注意,這里不能給 6382 了,要把它的給別人
What is the receiving node ID? 1d48fc74ac96354c19a454bddbbf9b1dac62ac21
# 從 6382 上把槽拿出來
Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1: 19fbf50b3536d2ab18a116bfa1e15f424df9af25
Source node #2: done
………………

這里就沒有貼那么多代碼了,只是貼上來關(guān)鍵部分。

  • How many slots do you want to move (from 1 to 16384)? 這里要填的只要比 6382 的大就行了,意思就是要把 6382 的槽清空
  • What is the receiving node ID? 這里也不能再填 6382 的 ID 了,我們要把它的槽給別人
  • Please enter all the source node IDs 現(xiàn)在這里填的 6382 的

其它的選項(xiàng)就和之前添加新節(jié)點(diǎn)時(shí)一樣了,這樣原來 6382 的槽就轉(zhuǎn)給了 1d48fc74ac96354c19a454bddbbf9b1dac62ac21 也就是 6379 。好了,現(xiàn)在你可以用 --cluster nodes查看一下集群信息,確認(rèn)沒問題的話再刪除節(jié)點(diǎn)就沒問題了。

? redis-cli --cluster del-node 127.0.0.1:6382 90ac7cdc531bdbb88d47a1980cdf9535cede0b7f
>>> Removing node 90ac7cdc531bdbb88d47a1980cdf9535cede0b7f from cluster 127.0.0.1:6382
>>> Sending CLUSTER FORGET messages to the cluster...
>>> Sending CLUSTER RESET SOFT to the deleted node.

上面的分槽方式,會(huì)將之前我們分配的 1000 個(gè)槽全部轉(zhuǎn)給 6379 ,這樣其實(shí) 6379 就比另外兩個(gè)槽的數(shù)據(jù)多了。其實(shí)正常轉(zhuǎn)的話,我們應(yīng)該多次去分槽,然后 How many slots do you want to move (from 1 to 16384)? 時(shí)指定大小,比如要給 6379 的就只分配 334 個(gè),因?yàn)橹?6379 也是分了 0-333這些槽過來。另外兩臺(tái)也是類似的操作,相當(dāng)于就是把之前拿過來的再平均還回去了。不僅限于 3 個(gè)節(jié)點(diǎn),N 個(gè)節(jié)點(diǎn)直接就操作 N 次,然后還 槽數(shù)/N 的數(shù)量回去就好了。

PHP 連接集群

Cluster 分布式集群的學(xué)習(xí)就完成了,最后再說一點(diǎn)就是在 PHP 這種客戶端上如何連接或者使用 Cluster 呢?非常簡單,phpredis 擴(kuò)展或者 predis 擴(kuò)展都有類似的對(duì)象可以直接使用,我們直接看 phpredis 的使用。不清楚 phpredis 和 predis 的小伙伴自己百度下,之前我也在 Laravel 系列的文章課程中講過 【Laravel系列4.7】連接redis以及緩存應(yīng)用https://mp.weixin.qq.com/s/DF3oo3c4RTfU_WvBSKXrpA 。

$c = new \RedisCluster(null, ['127.0.0.1:6379','127.0.0.1:6380','127.0.0.1:6381',
            '127.0.0.1:7379','127.0.0.1:7380','127.0.0.1:7381']);
var_dump($c);
// object(RedisCluster)#1 (0) {
// }

RedisCluster 對(duì)象就是連接 Cluster 集群的,它的參數(shù)第一個(gè) null 是一個(gè)名稱的意思,啥意思?就是其實(shí)我們可以在 .ini 的配置文件中配置 redis 的一些相關(guān)信息。然后在這里可以直接通過這個(gè)名稱找到相關(guān)的配置,這樣就不用第二個(gè)參數(shù)了。

# 在 redis.ini or php.ini 文件中
redis.clusters.seeds = "mycluster[]=localhost:6379&test[]=localhost:6380"
redis.clusters.timeout = "mycluster=5"
redis.clusters.read_timeout = "mycluster=10"

#
 在代碼中
$redisClusterPro = new RedisCluster('mycluster');
$redisClusterDev = new RedisCluster('test');

從 RedisCluster 對(duì)象輸出的結(jié)果來看,它里面直接就顯示了當(dāng)前主庫的信息。另外還有一點(diǎn)就是,其實(shí)我們第二個(gè)參數(shù)不用寫那么多,只要隨便寫一個(gè)當(dāng)前集群中的節(jié)點(diǎn)信息就可以了。

$c = new \RedisCluster("aaa", ['127.0.0.1:6379']);

然后試試吧,和普通的 Redis 對(duì)象一樣的操作就行了。

$c->set("a1""111");
$c->set("b1""111");
$c->incr("b1");
$c->lPush("c1"123);

print_r($c->get("a1")); echo PHP_EOL;
print_r($c->get("b1")); echo PHP_EOL;
print_r($c->lRange("c1"0-1));
// 111
// 112
// Array
// (
//   [0] => 3
//   [1] => 2
//   [2] => 1
// )

去命令行看看,數(shù)據(jù)肯定是存在的啦!

127.0.0.1:6379> get a1
-> Redirected to slot [7785] located at 127.0.0.1:6380
"111"

總結(jié)

學(xué)習(xí)完了 Reids Cluster ,我們關(guān)于 Redis 的正課部分也就全部完成了,后面還有一些擴(kuò)展方面的知識(shí)。說實(shí)話,別提 Cluster 了,就是哨兵,甚至是主從,我在日常的真實(shí)項(xiàng)目開發(fā)中都沒接觸過。為啥?Redis 官方給的數(shù)據(jù),理想狀態(tài)下單機(jī)寫和讀分別能達(dá)到每秒 8 萬和 11 萬次。中小型公司大部分情況下單獨(dú)一臺(tái) Redis 的性能都很難發(fā)揮到極致,更別說做主從或者分布式了。不過,機(jī)會(huì)總是留給有準(zhǔn)備的人的,知識(shí)的學(xué)習(xí)和應(yīng)用要分開來看,要是能學(xué)為所用當(dāng)然是最好的,如果用不到,至少還要有一定的儲(chǔ)備,免得真正需要你發(fā)揮的時(shí)候手忙腳亂了。

參考文檔:

https://redis.io/docs/manual/scaling/

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
全面剖析Redis Cluster原理和應(yīng)用
Redis3.0集群完全版(數(shù)據(jù)遷移問題)
redis cluster 集群搭建(增、刪、改、查) :5.0.2
Redis服務(wù)之集群節(jié)點(diǎn)管理
redis 3.0的集群部署
redis面試必問(下)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服