去年準備面試的時候就看到了redis的三種集羣模式,但只是理論上看了一下,沒有實踐過,今天做了一遍,其實並不難,雖然比較簡單,但還是有點成就感的,哈哈,這家公司其實可以用得上的,但是自己卻沒有實踐,現在將這個搭建過程記錄下來。
主從複製模式
第一步.複製redis配置文件
將redis配置文件複製成三分,分別命名成6379redis.conf,6380redis.conf,6381redis.conf
cp redis.conf 6379redis.conf
cp redis.conf 6380redis.conf
cp redis.conf 6381redis.conf
第二步.修改配置文件
再然後修改配置文件裏面的端口號,日誌文件路徑,持久化文件,PID文件路徑 pidfile
修改端口號
修改日誌文件路徑
修改持久化文件dump.rdb
修改PID文件路徑 pidfile
啓動三個redis
redis-server ./6379redis.conf
redis-server ./6380redis.conf
redis-server ./6381redis.conf
開三個窗口,在三個窗口裏面分別連接redis的客戶端,查看reids的基本信息。每一個窗口執行其中一條就好了
redis-cli -p 6379
redis-cli -p 6380
redis-cli -p 6381
這裏以連接6739爲例,並查看這個節點的信息,可以看到6379是一個主節點,查看6380和6381也是這樣的。
現在要把6380和6381改成從節點,兩種改發一種是在客戶端執行slaveof命令,一種是在配置文件裏面配置。我這裏是執行命令的
slaveof 127.0.0.1 6379
其中127.0.01 是主節點的ip,6379是主節點的端口號,執行完成後,再查看6380的節點信息,發現6380變成從節點了,而且變成只讀的了。
可以先嚐試再6380節點添加值
如果在6379節點設置值,在6380可以取到值,說明redis主從複製成功
主從複製最大的確定是不能實現故障轉移,也就是當主節點宕機後,整個服務就寫不了數據了。
哨兵模式
哨兵模式和主從複製的模式最大的不同是在主從節點外新增了哨兵節點,能監控主從節點的狀態,當主節點宕機後能從從節點裏面選舉出一個作爲主節點,保證服務的高可用性。
創建一個哨兵配置文件
touch sentinel.conf
然後再到配置文件裏面寫入:
sentinel monitor sentinel6379 127.0.0.1 6379 1
sentinel monitor 被監控機器的名字(自己起名字) ip地址 端口號 得票數
其中最後的1是當有一個哨兵節點認爲主節點主觀下線後,主節點就變成客觀下線了。
啓動哨兵節點:
redis-sentinel ./sentinel.conf
這樣哨兵節點就被啓動了,我們可以看一下
當關掉6379主節點後,然後查看誰變成了主節點,發現6380變成主節點了,這個時候就可以
重新啓動6379節點,看一下6379變成從節點了
到此redis的哨兵模式搭建完成了。