宅男在线永久免费观看网直播,亚洲欧洲日产国码无码久久99,野花社区在线观看视频,亚洲人交乣女bbw,一本一本久久a久久精品综合不卡

全部
常見問題
產品動態(tài)
精選推薦

Redis主從模式部署

管理 管理 編輯 刪除

主從模式是Redis三種集群模式中最簡單的,在主從復制中,數據庫分為兩類:主數據庫(master)和從數據庫(slave)。其中,主從復制有如下特點:

  • 主數據庫可以進行讀寫操作,當讀寫操作導致數據變化時會自動將數據同步給從數據庫;
  • 從數據庫一般是只讀的,并且接收主數據庫同步過來的數據;
  • 一個master可以擁有多個slave,但是一個slave只能對應一個master;
  • slave掛了不影響其他slave的讀和master的讀和寫,重新啟動后會將數據從master同步過來;
  • master掛了以后,不影響slave的讀,但redis不再提供寫服務,master重啟后redis將重新對外提供寫服務;
  • master掛了以后,不會在slave節(jié)點中重新選一個master;

下面是主從模式的工作示意圖。

工作機制:

  • 當slave啟動后,主動向master發(fā)送SYNC命令。master接收到SYNC命令后在后臺保存快照(RDB持久化)和緩存保存快照這段時間的命令,然后將保存的快照文件和緩存的命令發(fā)送給slave。slave接收到快照文件和命令后加載快照文件和緩存的執(zhí)行命令。
  • 復制初始化后,master每次接收到的寫命令都會同步發(fā)送給slave,保證主從數據一致性。

#環(huán)境說明

為了方便演示主從模式,我們需要準備至少3臺機器(虛擬機)。

IP主機名角色
192.168.182.110local-168-182-110master
192.168.182.111local-168-182-111slave1
192.168.182.112local-168-182-112slave2

#下載解壓Redis安裝包

接下來,就是下載Redis的安裝包,下載地址:http://download.redis.io/releases/

cd /opt/software
wget http://download.redis.io/releases/redis-7.0.3.tar.gz
# 解壓
tar -xf redis-7.0.3.tar.gz
cd redis-7.0.3
# 設置環(huán)境變量
echo "export REDIS_HOME=/opt/software/redis-7.0.3">> /etc/profile
source /etc/profile

#編譯安裝

接下來是,編譯安裝所有的節(jié)點。

cd $REDIS_HOME
yum -y install gcc gcc++
make && make install
# 默認安裝目錄 /usr/local/bin

#配置服務

安裝節(jié)點之后,為了方便后期啟動和維護服務, 需要對安裝的節(jié)點進行服務的配置。


cat << EOF > /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/local/bin/redis-server /usr/local/redis/redis.conf --supervised systemd
ExecStop=/usr/libexec/redis-shutdown
Type=forking
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
LimitNOFILE=65536
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

下面是配置的相關描述和說明:

  • Description: # 描述服務
  • After: # 描述服務類別
  • [Service] # 服務運行參數的設置
  • Type=forking # 是后臺運行的形式
  • ExecStart # 為服務的具體運行命令
  • ExecReload # 為重啟命令
  • ExecStop # 為停止命令
  • LimitNOFILE=65536 # 打開文件數和進程數有限制,默認限制為1024,如果不設置,或者設置為LimitNOFILE=unlimited(不識別),則得到了1024
  • PrivateTmp=True # 表示給服務分配獨立的臨時空間

【注意】[Service]的啟動、重啟、停止命令全部要求使用絕對路徑 [Install] #運行級別下服務安裝的相關設置,可設置為多用戶,即系統(tǒng)運行級別為3

重載系統(tǒng)服務:systemctl daemon-reload。以下是配置,位于/usr/libexec/redis-shutdown路徑下。


#!/bin/bash
#
# Wrapper to close properly redis and sentinel
test x"$REDIS_DEBUG" != x && set -x
REDIS_CLI=/usr/local/bin/redis-cli
# Retrieve service name
SERVICE_NAME="$1"
if [ -z "$SERVICE_NAME" ]; then
   SERVICE_NAME=redis
fi
# Get the proper config file based on service name
CONFIG_FILE="/usr/local/redis/$SERVICE_NAME.conf"
# Use awk to retrieve host, port from config file
HOST=`awk '/^[[:blank:]]*bind/ { print $2 }' $CONFIG_FILE | tail -n1`
PORT=`awk '/^[[:blank:]]*port/ { print $2 }' $CONFIG_FILE | tail -n1`
PASS=`awk '/^[[:blank:]]*requirepass/ { print $2 }' $CONFIG_FILE | tail -n1`
SOCK=`awk '/^[[:blank:]]*unixsocket\s/ { print $2 }' $CONFIG_FILE | tail -n1`
# Just in case, use default host, port
HOST=${HOST:-127.0.0.1}
if [ "$SERVICE_NAME" = redis ]; then
    PORT=${PORT:-6379}
else
    PORT=${PORT:-26739}
fi
# Setup additional parameters
# e.g password-protected redis instances
[ -z "$PASS"  ] || ADDITIONAL_PARAMS="-a $PASS"
# shutdown the service properly
if [ -e "$SOCK" ] ; then
        $REDIS_CLI -s $SOCK $ADDITIONAL_PARAMS shutdown
else
        $REDIS_CLI -h $HOST -p $PORT $ADDITIONAL_PARAMS shutdown
fi

經過上面的處理后,就可以使用systemctl命令來啟停redis了。

#授權啟動服務

接下來,是授權啟動服務需要用到的一些命令:

chmod +x /usr/libexec/redis-shutdown
useradd -s /sbin/nologin redis

mkdir /usr/local/redis ; cp $REDIS_HOME/redis.conf /usr/local/redis/ && chown -R redis:redis /usr/local/redis
mkdir -p /opt/software/redis-7.0.3/data && chown -R redis:redis /opt/software/redis-7.0.3/data
yum install -y bash-completion && source /etc/profile                 # 命令補全
systemctl daemon-reload
systemctl enable redis

#修改linux內核參數

# 臨時生效
sysctl  -w  vm.overcommit_memory=1
# 永久生效
echo 'vm.overcommit_memory=1' >> /etc/sysctl.conf && sysctl -p
### 可選值:0,1,2。
# 0,:表示內核將檢查是否有足夠的可用內存供應用進程使用;如果有足夠的可用內存,內存申請允許;否則,內存申請失敗,并把錯誤返回給應用進程。
# 1:表示內核允許分配所有的物理內存,而不管當前的內存狀態(tài)如何。
# 2: 表示內核允許分配超過所有物理內存和交換空間總和的內存。

#節(jié)點配置

#master節(jié)點配置

首先,我們打開master節(jié)點文件,文件位于vi/usr/local/redis/redis.conf目錄下,然后修改配置如下:

bind 192.168.182.110               # 監(jiān)聽ip,多個ip用空格分隔
daemonize yes               # 允許后臺啟動
logfile "/usr/local/redis/redis.log"                # 日志路徑
dir /opt/software/redis-7.0.3/data                 # 數據庫備份文件存放目錄
masterauth 123456               # slave連接master密碼,master可省略
requirepass 123456              # 設置master連接密碼,slave可省略
appendonly yes                  # 在/opt/software/redis-7.0.3/data目錄生成appendonly.aof文件,將每一次寫操作請求都追加到appendonly.aof 文件中

#slave1節(jié)點配置

接著,我們打開slave1節(jié)點文件,文件位于vi/usr/local/redis/redis.conf,修改配置如下:

bind 192.168.182.111               # 監(jiān)聽ip,多個ip用空格分隔
daemonize yes               # 允許后臺啟動
logfile "/usr/local/redis/redis.log"                # 日志路徑
dir /opt/software/redis-7.0.3/data                 # 數據庫備份文件存放目錄
#  replicaof用于追隨某個節(jié)點的redis,被追隨的節(jié)點為主節(jié)點,追隨的為從節(jié)點。就是設置master節(jié)點
replicaof 192.168.182.110 6379
masterauth 123456               # slave連接master密碼,master可省略
requirepass 123456              # 設置master連接密碼,slave可省略
appendonly yes                  # 在/opt/software/redis-7.0.3/data目錄生成appendonly.aof文件,將每一次寫操作請求都追加到appendonly.aof 文件中

#slave2節(jié)點配置

打開slave2的節(jié)點文件,文件位于vi/usr/local/redis/redis.conf,修改配置如下:

bind 192.168.182.112               # 監(jiān)聽ip,多個ip用空格分隔
daemonize yes               # 允許后臺啟動
logfile "/usr/local/redis/redis.log"                # 日志路徑
dir /opt/software/redis-7.0.3/data                 # 數據庫備份文件存放目錄
#  replicaof用于追隨某個節(jié)點的redis,被追隨的節(jié)點為主節(jié)點,追隨的為從節(jié)點。就是設置master節(jié)點
replicaof 192.168.182.110 6379
masterauth 123456               # slave連接master密碼,master可省略
requirepass 123456              # 設置master連接密碼,slave可省略
appendonly yes                  # 在/opt/software/redis-7.0.3/data目錄生成appendonly.aof文件,將每一次寫操作請求都追加到appendonly.aof 文件中

#啟動Redis服務

systemctl start redis
systemctl status redis

#查看集群

然后,使用下面的命令查看集群的一些數據:

# 交互式
redis-cli -h 192.168.182.110 -a 123456
192.168.182.110:6379> info replication

# 交互式
redis-cli -h 192.168.182.110
192.168.182.110:6379> auth 123456
192.168.182.110:6379> info replication

# 非交互式
redis-cli -h 192.168.182.110 -a 123456 info replication

如果一切配置都沒有問題,Redis的主數據庫會不定時的向從數據庫同步數據,如下圖所示。

進一步,感興趣的小伙伴可以再學習一下Redis的哨兵模式Cluster模式。


請登錄后查看

CRMEB 最后編輯于2024-12-24 15:14:17

快捷回復
回復
回復
回復({{post_count}}) {{!is_user ? '我的回復' :'全部回復'}}
排序 默認正序 回復倒序 點贊倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理員 企業(yè)

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
{{item.is_suggest == 1? '取消推薦': '推薦'}}
沙發(fā) 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暫無簡介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打賞
已打賞¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回復' : '回復'}}
刪除
回復
回復

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回復 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打賞
已打賞¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回復' : '回復'}}
刪除
回復
回復
查看更多
打賞
已打賞¥{{reward_price}}
702
{{like_count}}
{{collect_count}}
添加回復 ({{post_count}})

相關推薦

快速安全登錄

使用微信掃碼登錄
{{item.label}} 加精
{{item.label}} {{item.label}} 板塊推薦 常見問題 產品動態(tài) 精選推薦 首頁頭條 首頁動態(tài) 首頁推薦
取 消 確 定
回復
回復
問題:
問題自動獲取的帖子內容,不準確時需要手動修改. [獲取答案]
答案:
提交
bug 需求 取 消 確 定
打賞金額
當前余額:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
請輸入 0.1-{{reward_max_price}} 范圍內的數值
打賞成功
¥{{price}}
完成 確認打賞

微信登錄/注冊

切換手機號登錄

{{ bind_phone ? '綁定手機' : '手機登錄'}}

{{codeText}}
切換微信登錄/注冊
暫不綁定
CRMEB客服

CRMEB咨詢熱線 咨詢熱線

400-8888-794

微信掃碼咨詢

CRMEB開源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
返回頂部 返回頂部
CRMEB客服