午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

Redis 5.0.8 集群的搭建

 宅必備 2022-05-30 發(fā)布于江蘇

系統(tǒng)為 Redhat 7.4

數(shù)據(jù)庫為 Redis 5.0.8

1. redis集群規(guī)劃

節(jié)點編號IP地址端口節(jié)點類型配置文件
1172.18.95.836379/home/redis/cluster/6379/redis_6379.conf
2172.18.95.846379/home/redis/cluster/6379/redis_6379.conf
3172.18.95.856379/home/redis/cluster/6379/redis_6379.conf
4172.18.95.836380/home/redis/cluster/6380/redis_6380.conf
5172.18.95.846380/home/redis/cluster/6380/redis_6380.conf
6172.18.95.856380/home/redis/cluster/6380/redis_6380.conf
7172.18.95.836381/home/redis/cluster/6381/redis_6381.conf
8172.18.95.846381/home/redis/cluster/6381/redis_6381.conf
9172.18.95.856381/home/redis/cluster/6381/redis_6381.conf

2 安裝redis軟件

首先我們根據(jù)以前的內(nèi)容安裝3套redis

其中配置文件的目錄參考上面的規(guī)劃

3.新建目錄

三臺機器

su - redis
mkdir -p /home/redis/cluster/6379
mkdir -p /home/redis/cluster/6380
mkdir -p /home/redis/cluster/6381

4.集群配置文件

接下來我們分別在/home/redis/cluster目錄下建立哨兵配置文件(共9個)

這里以節(jié)點1為例,其他節(jié)點參考

其實只是比單機的配置文件多了一些集群相關(guān)的配置

節(jié)點1

$ cat /home/redis/cluster/6379/redis_6379.conf


daemonize yes
bind 172.18.95.83
port 6379
tcp-backlog 1024
timeout 300
tcp-keepalive 300
databases 16
requirepass 123456
masterauth 123456

cluster-enabled yes
cluster-node-timeout 15000
cluster-config-file nodes-6379.conf

pidfile "/home/redis/cluster/6379/redis_6379.pid"

loglevel notice
logfile "/home/redis/cluster/6379/redis_6379.log"

dir "/home/redis/cluster/6379"

dbfilename "dump.rdb"
stop-writes-on-bgsave-error no
rdbcompression yes
rdbchecksum yes

appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
aof-load-truncated yes
no-appendfsync-on-rewrite no
aof-rewrite-incremental-fsync yes
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 32mb

maxclients 65503
maxmemory 1gb
maxmemory-policy allkeys-lru

# replication
slave-serve-stale-data yes
slave-read-only yes
repl-disable-tcp-nodelay no
repl-backlog-size 32mb

# slow log
slowlog-log-slower-than 10000
slowlog-max-len 1024

hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64

client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 512mb 512mb 60
client-output-buffer-limit pubsub 64mb 16mb 60

protected-mode yes

# security
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command KEYS ""

上面參數(shù)我們需要根據(jù)實際情況修改一些參數(shù)

  • bind 172.18.95.84 127.0.0.1 監(jiān)聽地址,第一個使用本機IP地址

  • port 6380 監(jiān)聽端口

  • maxmemory redis允許使用的最大內(nèi)存,根據(jù)服務(wù)器配置和業(yè)務(wù)需求決定

  • requirepass 123456 redis密碼,可以注釋掉表示不設(shè)置

  • masterauth 123456 連接master時用的密碼,如master未設(shè)置可注釋掉

  • 還需要根據(jù)實際修改配置文件和日志文件的路徑和名稱

5.啟動redis

接下來我們啟動所有8個redis節(jié)點

啟動redis

su - redis
172.18.95.83
/usr/local/bin/redis-server /home/redis/cluster/6379/redis_6379.conf
/usr/local/bin/redis-server /home/redis/cluster/6380/redis_6380.conf
/usr/local/bin/redis-server /home/redis/cluster/6381/redis_6381.conf
172.18.95.84
/usr/local/bin/redis-server /home/redis/cluster/6379/redis_6379.conf
/usr/local/bin/redis-server /home/redis/cluster/6380/redis_6380.conf
/usr/local/bin/redis-server /home/redis/cluster/6381/redis_6381.conf
172.18.95.85
/usr/local/bin/redis-server /home/redis/cluster/6379/redis_6379.conf /usr/local/bin/redis-server /home/redis/cluster/6380/redis_6380.conf
/usr/local/bin/redis-server /home/redis/cluster/6381/redis_6381.conf

這時我們查看集群狀態(tài)發(fā)現(xiàn)是fail的,而且沒有其他節(jié)點的信息

集群文件也只有一個節(jié)點的信息

[redis@SYTEST1 6379]$ more nodes-6379.conf
9a74ab968c706a36d7a44427a45e4c151a8bfa63 :0@0 myself,master - 0 0 0 connected
vars currentEpoch 0 lastVoteEpoch 0

同時集群也是不能寫入的

172.18.95.83:6379> set hello world
(error) CLUSTERDOWN Hash slot not served
172.18.95.83:6379>

6. 搭建集群

接下來我們來搭建集群

除了手動搭建,我們這里使用命令來自動化安裝

redis 3和4的版本需要使用ruby腳本來完成自動化安裝,到了5的版本,該功能已經(jīng)集成到redis-cli命令中

我們輸入如下命令完成搭建

因為我們這里舍得6379端口是主節(jié)點所以我們將6379的端口寫在最前面

其中一個節(jié)點

redis-cli -a "123456"  --cluster create  172.18.95.83:6379 172.18.95.84:6379 172.18.95.85:6379 172.18.95.83:6380 172.18.95.84:6380 172.18.95.85:6380 172.18.95.83:6381 172.18.95.84:6381 172.18.95.85:6381 --cluster-replicas 2

--cluster-replicas 2 表示一主兩從

這里填入yes

可以看到該命令已經(jīng)將從節(jié)點分配在不同節(jié)點上了,并且6379端口為主節(jié)點

最后完成了搭建并打印結(jié)果

對于集群我們只要保證主從節(jié)點不在同一個服務(wù)器就可以了,如果需要固定的主從關(guān)系,請使用后面的命令來改變關(guān)系

7.連接redis集群

我們使用如下命令來連接集群,可選擇任一節(jié)點

[redis@SYTEST1 6379]$ redis-cli -h 172.18.95.83 -p 6379 -a 123456 -c

這里必須加入-c參數(shù),否則如果操作的key的slot值不在該節(jié)點會導(dǎo)致命令執(zhí)行失敗

8.查詢集群信息

查詢節(jié)點信息

cluster nodes

查詢slot信息

該命令可以更直觀的查看集群的架構(gòu)

cluster slots

查詢集群狀態(tài)

cluster info

手動failover

有時集群宕機重啟后可能會導(dǎo)致主備節(jié)點在同一臺機器上,這時需要手動指定一個從節(jié)點成為主節(jié)點

從節(jié)點#172.18.95.83:6380> cluster failover

重新指定主庫

我們同樣可以手動指定從節(jié)點同步哪個主節(jié)點

后面跟的是主節(jié)點的node id

從節(jié)點># 172.18.95.85:6380> cluster replicate 2fb4d5cf998a562e1391c082eb34a1476c8f620f

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多