redis 集群搭建以及redislive監測部署

2021-09-13 12:38:03 字數 3337 閱讀 5071

實現3主3從的集群 虛擬機器單機ip:192.168.40.128

複製redis conf內的config檔案複製到六個資料夾中,並且修改以下內容

# 埠號  

port 7000

# 後台啟動

daemonize yes

# 開啟集群

cluster-enabled yes

#集群節點配置檔案

cluster-config-file nodes-7000.conf

# 集群連線超時時間

cluster-node-timeout 5000

# 程序pid的檔案位置

pidfile /home/ubuntu/redis-4.0.10/pid/redis-7000.pid

#工作資料夾

dir "/home/ubuntu/redis-4.0.10/working"

# 開啟aof

# aof檔案路徑

# rdb檔案路徑

dbfilename dump-7000.rdb

redis 的配置檔案中的bind指定的是redis伺服器的網絡卡ip,也就是redis伺服器的ip

#!/bin/bash

export base_flod="/usr/local/redis"

/bin/redis-server /usr/local/redis/cluster/7000/redis.conf

/usr/local/redis/bin/redis-server /usr/local/redis/cluster/7001/redis.conf

/usr/local/redis/bin/redis-server /usr/local/redis/cluster/7002/redis.conf

/usr/local/redis/bin/redis-server /usr/local/redis/cluster/7003/redis.conf

/usr/local/redis/bin/redis-server /usr/local/redis/cluster/7004/redis.conf

/usr/local/redis/bin/redis-server /usr/local/redis/cluster/7005/redis.conf

#cd src

#./redis-trib.rb create --replicas 1 192.168.40.128:7000 192.168.40.128:7001 192.168.40.128:7002 192.168.40.128:7003 192.168.40.128:7004 192.168.40.128:7005

其中注釋的是為了簡化初始啟動的,ip需要跟每個節點配置的redis.conf 中bind 屬性繫結的一致,啟動後可以通過ps -ef | grep redis命令查詢對應的執行緒是否啟動

檢視集群執行狀態:使用命令./redis-trib.rb check 192.168.40.128:7000,進行集群的狀態檢查

自帶測試工具redis-benchmark

集群搭建初始不需要密碼,啟動完成後,先看每個節點的配置檔案是否有讀寫許可權,如果沒有讀寫許可權,需要chmod修改的讀寫許可權,通過

./redis-cli -c -p port

config set masterauth password

config set requirepass password

config rewrite

分別連線每個節點進行設定

若要重啟發現連線不上,修改啟動指令碼 redis-trib.rb.sh 99行,配置啟動指令碼密碼啟動

@r = redis.new(:host => @info[:host], :port => @info[:port], :timeout => 60,:password => "password")

/*

*集群連線測試

*/@test

public void testjediscluster() catch (ioexception e)

}

主從模式是指定複製和持久化關係,指定了主從備份的關係

哨兵:當主資料庫遇到異常中斷服務後,開發者可以通過手動的方式選擇乙個從資料庫來公升格為主資料庫,以使得系統能夠繼續提供服務。主要是為了解決主從複製手動切換主從關係的檢測工具,可以自動切換主從。

使用哨兵,redis每個例項也是全量儲存,每個redis儲存的內容都是完整的資料,浪費記憶體且有木桶效應。為了最大化利用記憶體,可以採用集群,就是分布式儲存。即每台redis儲存不同的內容,共有16384個slot。每個redis分得一些slot,hash_slot = crc16(key) mod 16384 找到對應slot,鍵是可用鍵,如果有{}則取{}內的作為可用鍵,否則整個鍵是可用鍵集群至少需要3主3從,且每個例項使用不同的配置檔案,主從不用配置,集群會自己選。

執行環境部署

git clone進入src資料夾,複製example檔案,編輯

"redisservers":

[ ,

//...多個監聽

],"datastoretype" : "redis",

"redisstatsserver": //儲存的redis監聽介面

,"sqlitestatsstore" :

}

ubuntu@ubuntu:~/redis-4.0.10$ mkdir pid

ubuntu@ubuntu:~/redis-4.0.10$ mkdir log

ubuntu@ubuntu:~/redis-4.0.10$ mkdir working

//儲存aof,rdb,node-config檔案。

redislive分為兩部分,其中一部分為監控指令碼,另一部分為web服務,所以需要分別啟動。`./redis-monitor.py

--duration=120`./redis-live.py訪問

redis.clients.jedis.exceptions.jedisnoreachableclusternodeexception: no reachable node in cluster redis node的redis.conf 繫結ip設定為指定的redis節點ip,啟動集群時只用指定ip啟動,不使用192.168.40.128

connect refuse 關閉防火牆

no module named redis

redis安裝以及集群搭建

tar zxvf redis 5.0.5.tar.gz yum y install gcc c 或者 yum y install gcc automake autoconf libtool make cd redis 5.0.5 跳轉到你解壓的目錄下 make 或者 make malloc libc...

redis集群搭建以及和spring整合

1.集群搭建 mkdir p usr local redis cluster mkdir 7001 mkdir 7002 mkdir 7003 mkdir 7004 mkdir 7005 mkdir 7006 tar zxvf usr local software redis 3.0.0 rc2.t...

搭建redis集群

sudo apt get install git python python pip sudo pip install redis sudo pip install e git sudo pip install e git git clone ll binaries total 19m 173582...