1. 程式人生 > >Redis從入門到熟練使用之主從,持久化配置(詳解,第二篇,共五篇)

Redis從入門到熟練使用之主從,持久化配置(詳解,第二篇,共五篇)

Docker下redis的主從、持久化配置

redis是k-v型nosql資料庫,支援字串(string)、列表(list)、集合(set)、雜湊(hash)、有序集合(zset:形如member:score的雜湊集合,其中member為成員,score為成員得分,必須為float型資料)。

綜合使用redis的以上5種資料型別,可以將redis應用於各種場景,比如點贊、投票網站、訊息佇列、分散式鎖(使用setnx指令,該指令只有在key不存在的時候,才會執行寫入操作)、檔案分發(沒研究過)、日誌記錄等等。

redis支援主從配置(拓展讀效能,主機負責讀取、寫入,從機只負責讀取,主機自動向從機以rdb快照形式同步資料)、持久化配置(支援rdb快照持久化、aof持久化,舊版redis不支援同時配置兩種持久化方式,新版的貌似可以)、釋出訂閱(pub、sub)、事務、流水線pipeline(減少客戶端和服務端往返連線次數從而提高效能)、客戶端分片(拓展寫效能)等。

本文主要記錄下redis中的主從配置及持久化操作

下載redis映象

映象中心

推薦使用國內daocloud映象

映象地址:daocloud.io/library/

拉取redis映象

docker pull daocloud.io/library/redis:latest

檢視拉取的映象

docker images

搭建redis叢集

執行redis映象

首先使用docker啟動3個redis容器服務,分別使用到6379、6380、6381埠

docker run --name redis-6379 -p 6379:6379 -d daocloud.io/library/redis

docker run --name redis-6380 -p 6380:6379 -d daocloud.io/library/redis

docker run --name redis-6381 -p 6381:6379 -d daocloud.io/library/redis

檢視執行

docker ps

https://raw.githubusercontent.com/caiya/imgs/74b7250639d5aab8909a6ed15c2797905488e311/redis-ps.png

https://raw.githubusercontent.com/caiya/imgs/93bcb803343fdd482d80df9d6dcc4e257dcb3669/redis.png

配置redis叢集

使用如下命令檢視容器內網的ip地址等資訊

docker inspect containerid

https://raw.githubusercontent.com/caiya/imgs/3ae82850a1619d8b329810bd2225135a7d6594c7/redis-ip.png

3個redis的內網ip地址為:

redis-6379:172.17.0.2:6379

redis-6380:172.17.0.3:6379

redis-6381:172.17.0.4:6379

進入docker容器內部,檢視當前redis角色(主還是從)

https://raw.githubusercontent.com/caiya/imgs/3ae82850a1619d8b329810bd2225135a7d6594c7/redis-master.png

可以看到當前3臺redis都是master角色,使用redis-cli命令修改redis-6380、redis-6381的主機為172.17.0.2:6379

SLAVEOF host port // SLAVEOF 172.17.0.2 6379

檢視redis-6379是否已經擁有2個從機:

https://raw.githubusercontent.com/caiya/imgs/35ef304ca730a801e4a1a9c2ab03edb02a8bf859/redis-rep.png

至此,redis下的主從配置就ok了。

本文圖片是借鑑的另一篇文章