前期準(zhǔn)備
使用的操作系統(tǒng)是os x系統(tǒng), 已經(jīng)安裝了redis(我這里是使用brew進(jìn)行安裝).
redis主從環(huán)境搭建
這里假設(shè)搭建一個(gè)master, 一個(gè)slave的環(huán)境(多個(gè)slave的環(huán)境搭建類似)
- 到
/usr/local/etc
目錄下查找redis的配置文件, redis.conf文件 - 拷貝redis.conf文件, 重命名成redis6380.conf
- 修改redis6380.conf配置文件中的以下配置:
port 6380
slaveof 127.0.0.1 6379
masterauth <master-password>(如果master主機(jī)設(shè)置了auth密碼則要進(jìn)行設(shè)置)
- 分別啟動mater和slave, 啟動時(shí)指定配置文件(不指定默認(rèn)使用redis.conf)
redis-server <PATH-TO-REDIS.CONF>/redis.conf // 啟動master
redis-server <PATH-TO-REDIS6380.CONF>/redis6380.conf // 啟動slave
master:
redis-master
slave:
redis-slave
- 使用客戶端連接redis進(jìn)行操作, 連接時(shí)要指定端口
redis-cli -p 6379 // 連接到master
redis-cli -p 6380 // 連接到slave
注意: 默認(rèn)情況下slave服務(wù)只能進(jìn)行讀操作, 要是想讓slave也能進(jìn)行寫操作, 則需要修改slave-read-only no
, 這樣就能對slave進(jìn)行寫操作, 但是對slave的寫操作不會同步到master中.
redis集群搭建
- 新建3個(gè)目錄, 目錄名是端口號
- 每一個(gè)目錄中都放一份redis.server執(zhí)行文件(方便后面的執(zhí)行, 不是必要的)和一份redis.conf配置文件
- 修改每個(gè)目錄中的redis.conf配置文件中的以下屬性
cluster-config-file nodes-<port>.conf(只要3個(gè)配置的文件名不一樣即可)
daemonize yes
cluster-enabled yes
cluster-node-timeout 5000
- 進(jìn)入到每個(gè)目錄, 使用命令./redis-server redis.conf啟動redis
- 安裝ruby(已經(jīng)安裝的跳過, mac應(yīng)該是自帶ruby的)
- 安裝redis的ruby模塊 [sudo] gem install redis
- 從redis的源碼中下載src/redis-trib.rb文件(這個(gè)ruby用于管理redis的集群, 例如slots的設(shè)置)
- 啟動集群, ruby <redis-trib.rd-path> create <--replicas 1>(用于創(chuàng)建master-slave 模式, 設(shè)置每個(gè)master有1個(gè)slave) 127.0.0.1:7000 127.0.0.1:7001...
- 使用redis-cli -p <port>指定任意一個(gè)端口, 就可以連接redis的集群了
cluster:
redis-cluster