我們來試試進行數據的存儲
127.0.0.1:7000> set name marklogzhu
OK
127.0.0.1:7000> get name
"marklogzhu"
127.0.0.1:7000> set name1 java
(error) MOVED 12933 127.0.0.1:7002
當我們設置 name1 java
竟然報錯了,這是什么情況?
moved 重定向
這是因為 Redis 集群會計算存儲的 key 對應的槽和節點,如果對應的節點不是當前節點的話就會報 moved 重定向
錯誤,如圖所示:
ask 重定向
除了 moved
錯誤外,還有一個 ask
錯誤,它是指槽正在遷移過程中客戶端進行訪問所以需要重定向到新的節點上去。
redis-cli -c
那么集群的訪問要怎么辦呢,我們可以使用 redis-cli -c
命令來訪問,它可防止moved和ask異常,會自動跳轉到對應的 Redis 節點上去繼續執行命令,我們來試試看:
[root@VM_0_15_centos redis4]# ./redis-cli -c -p 7003
127.0.0.1:7003> get name
-> Redirected to slot [5362] located at 127.0.0.1:7000
"marklogzhu"
127.0.0.1:7000>