Mac 環境下 Redis 叢集的搭建
安裝 Redis
Mac 環境下安裝 Redis 是非常簡單的,直接執行命令:brew install redis 就可以了(需要安裝 homebrew),這也是我比較推薦的方式。透過 homebrew 安裝 Redis 之後,Redis 的環境變數、解除安裝、更新都可以透過簡單的命令來完成,也就是說你不再需要考慮管理 Redis 的問題了。
安裝完成之後,就可以直接在終端執行命令:
- redis-server:啟動 redis 伺服器,預設埠 6379
- redis-cli:啟動 redis 客戶端
配置 Redis 叢集環境
說明:透過 homebrew 安裝完成之後,redis 的預設配置檔案(redis.conf)的路徑位於:/usr/local/etc,環境配置的操作也基本在這個路徑下完成。
建立虛擬節點目錄、修改配置檔案
說明:各個步驟的詳細說明可以參考文件:
這個操作包含了兩個步驟:建立 Redis 虛擬節點的目錄,並修改虛擬節點的配置檔案,下面詳細說明。
- 建立 Redis 虛擬節點目錄
在 /usr/local/etc 下建立 cluster 目錄,並在 cluster 目錄下建立目錄:7000、7001、7002、7003、7004、7005。需要執行的命令:
# 需要在 /usr/local/etc 路徑下
mkdir -p redis/cluster/7000
mkdir -p redis/cluster/7001
mkdir -p redis/cluster/7002
mkdir -p redis/cluster/7003
mkdir -p redis/cluster/7004
mkdir -p redis/cluster/7005
- 修改配置檔案
複製 Redis 預設的配置檔案(/usr/local/etc/redis.conf)到 7000、7001、7002、7003、7004、7005 這6個目錄中。修改每一個目錄下的配置檔案,這裡以 7000 為例:
# cp redis.conf redis/cluster/7000/7000.conf
port 7000 # Redis 節點的埠號
cluster-enabled yes # 例項以叢集模式執行
cluster-config-file nodes-7000.conf # 節點配置檔案路徑
cluster-node-timeout 5000 # 節點間通訊的超時時間
appendonly yes # 資料持久化
啟動 Redis,並驗證各個節點的狀態
在任意目錄執行下面的6個命令,即啟動6個 Redis 節點:
redis-server /usr/local/etc/redis/cluster/7000/7000.conf &
redis-server /usr/local/etc/redis/cluster/7001/7001.conf &
redis-server /usr/local/etc/redis/cluster/7002/7002.conf &
redis-server /usr/local/etc/redis/cluster/7003/7003.conf &
redis-server /usr/local/etc/redis/cluster/7004/7004.conf &
redis-server /usr/local/etc/redis/cluster/7005/7005.conf &
透過命令啟動之後,檢視當前系統是否存在對應的程式。如果能看到如下類似的結果,則說明啟動成功。
ps -ef |grep redis
119804143 69725 643 0 6:55下午 ttys009 0:01.37 redis-server 127.0.0.1:7000 [cluster]
119804143 69771 643 0 6:56下午 ttys009 0:00.80 redis-server 127.0.0.1:7001 [cluster]
119804143 69809 643 0 6:57下午 ttys009 0:00.11 redis-server 127.0.0.1:7002 [cluster]
119804143 69816 643 0 6:57下午 ttys009 0:00.08 redis-server 127.0.0.1:7003 [cluster]
119804143 69831 643 0 6:57下午 ttys009 0:00.04 redis-server 127.0.0.1:7004 [cluster]
119804143 69851 643 0 6:57下午 ttys009 0:00.03 redis-server 127.0.0.1:7005 [cluster]
建立叢集
當前系統中已經有了6個正在執行的 Redis 例項,需要使用 Redis 叢集命令列工具 redis-trib 來完成叢集的建立工作。redis-trib 可以在 下載得到。它是一個 Ruby 程式,這個程式透過向例項傳送特殊命令來完成建立新叢集,檢查叢集,或者對叢集進行重新分片(reshared)等工作。需要安裝 Redis 的 Ruby 模組。執行以下命令:
brew update
brew install ruby
sudo gem install redis
在 redis-trib.rb 檔案所在目錄執行命令:
# 無需指定哪個節點為 master,哪個節點為 slave,因為 redis 內部演算法已經幫我們實現了
# 使用 –replicas 1 建立叢集,即每個 master 帶一個 slave
./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
建立過程會列印類似如下的資訊,表示建立叢集成功。
>>> Creating cluster
Connecting to node 127.0.0.1:7000: OK
Connecting to node 127.0.0.1:7001: OK
Connecting to node 127.0.0.1:7002: OK
Connecting to node 127.0.0.1:7003: OK
Connecting to node 127.0.0.1:7004: OK
Connecting to node 127.0.0.1:7005: OK
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
...
驗證叢集可用性
透過兩種方式驗證叢集的可用性:1. 透過 redis-trib 提供的命令;2. 登入客戶端,執行操作
- 檢查叢集的狀態:redis-trib check
# 執行命令 ./redis-trib.rb check 127.0.0.1:7000 可以看到類似如下的列印資訊,ip 與 port 指定叢集中的任意一個
./redis-trib.rb check 127.0.0.1:7000
>>> Performing Cluster Check (using node 127.0.0.1:7000)
M: 359d7471abd2f06c5463f8003f69f85c59498a9d 127.0.0.1:7000
slots:0-5460 (5461 slots) master
1 additional replica(s)
S: 0fd9da2bda6c812a9879adf61d42c11eade17bfc 127.0.0.1:7003
slots: (0 slots) slave
replicates 359d7471abd2f06c5463f8003f69f85c59498a9d
S: e44850529685bc27b1d816bec37bd5e5ec2b588c 127.0.0.1:7005
slots: (0 slots) slave
replicates 00795ac18a89d1e537cac3a112c96cb5cd30510e
M: 00795ac18a89d1e537cac3a112c96cb5cd30510e 127.0.0.1:7002
slots:10923-16383 (5461 slots) master
1 additional replica(s)
M: 576f37746690d4d951e1ea31706ead9a42386880 127.0.0.1:7001
slots:5461-10922 (5462 slots) master
1 additional replica(s)
S: 1484ab04a4bfa60ab01325643ac54056f006b91d 127.0.0.1:7004
slots: (0 slots) slave
replicates 576f37746690d4d951e1ea31706ead9a42386880
[OK] All nodes agree about slots configuration.
>>> Check slots coverage...
[OK] All 16384 slots covered.
- 檢視叢集的資訊:redis-trib info
# 執行命令 ./redis-trib.rb info 127.0.0.1:7000 可以看到類似如下的列印資訊,ip 與 port 指定叢集中的任意一個
./redis-trib.rb info 127.0.0.1:7000
127.0.0.1:7000 (359d7471...) -> 0 keys | 5461 slots | 1 slaves.
127.0.0.1:7002 (00795ac1...) -> 1 keys | 5461 slots | 1 slaves.
127.0.0.1:7001 (576f3774...) -> 1 keys | 5462 slots | 1 slaves.
[OK] 2 keys in 3 masters.
0.00 keys per slot on average.
- 登入任意一個節點,執行命令
# 登入任意一個節點,執行 set、get 等命令
redis-cli -c -p 7000
127.0.0.1:7000> set name qinyi
-> Redirected to slot [5798] located at 127.0.0.1:7001
OK
127.0.0.1:7001> get name
"qinyi"
到此,Mac 環境下 Redis 叢集的搭建就完成了。
·······························
歡迎關注課程:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/964/viewspace-2822257/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Redis叢集環境搭建實踐Redis
- 12. Redis叢集環境搭建Redis
- 基於docker環境下搭建redis主從叢集DockerRedis
- 生產環境的redis高可用叢集搭建Redis
- Docker環境搭建redis叢集(主從模式)DockerRedis模式
- 【環境搭建】RocketMQ叢集搭建MQ
- Glassfish叢集環境的搭建
- Zookeeper 叢集環境搭建
- Linux 下 Hadoop 2.6.0 叢集環境的搭建LinuxHadoop
- es 5.5.3叢集環境搭建
- hadoop叢集環境搭建Hadoop
- Docker構建redis叢集環境DockerRedis
- Redis叢集環境安裝指南Redis
- Linux下Hadoop2.6.0叢集環境的搭建LinuxHadoop
- HADOOP SPARK 叢集環境搭建HadoopSpark
- Hadoop框架:叢集模式下分散式環境搭建Hadoop框架模式分散式
- Redis叢集環境下的-RedLock(真分散式鎖) 實踐Redis分散式
- Redis系列:搭建Redis叢集(叢集模式)Redis模式
- redis叢集的搭建Redis
- redis叢集搭建Redis
- 搭建 Redis 叢集Redis
- Linux 環境下搭建Hadoop叢集(全分佈)LinuxHadoop
- 高可用叢集環境搭建-留檔
- k8s——搭建叢集環境K8S
- mac 下搭建flutter環境MacFlutter
- PC基於Linux的叢集環境搭建?Linux
- ZooKeeper 系列(二)—— Zookeeper單機環境和叢集環境搭建
- Windows 10環境簡單搭建ELK叢集Windows
- Redis(5.0) 叢集搭建Redis
- 搭建Redis原生叢集Redis
- Redis--叢集搭建Redis
- Docker搭建Redis叢集DockerRedis
- 搭建redis cluster叢集Redis
- Ubuntu上搭建Hadoop叢集環境的步驟UbuntuHadoop
- Mac環境下安裝配置RedisMacRedis
- MAC 下的PHP開發環境搭建MacPHP開發環境
- Elasticsearch叢集搭建教程及生產環境配置Elasticsearch
- 搭建 MongoDB分片(sharding) / 分割槽 / 叢集環境MongoDB