Redis集群生產環境原始碼安裝

2021-10-01 08:12:13 字數 4860 閱讀 5704

安裝

redis集群  根據各人單位生產環境使用者搭建

一、安裝環境

作業系統:centos7.6

關閉防火牆、關閉selinux

redis1:192.168.26.128

redis2:192.168.26.129

二、使用者環境

groupadd usr

useradd -g usr -md /usr/users/sw sw

cd /usr/users/sw/

mkdir redis

chown -r sw:usr /usr/users/sw

三、系統引數修改,有幾個系統引數需要調整,否則,在啟動redis時會有幾個warning:

1.redis的配置檔案中,預設的最大客戶端連線數為10000,要求至少最大檔案描述符要10032個,我 們一般系統都會設定為65535

vim /etc/security/limits.conf新增以下內容

*  soft   nproc  12000

*  hard  nproc   12000

*  soft   nofile  65535

*  hard  nofile  65535

*  hard  stack    10240    

*  soft  stack    10240 

*  hard  sigpending  127934

*  soft  sigpending  127934

vim /etc/security/limits.d/20-nproc.conf   修改

*  soft   nproc  12000

2.在/etc/sysctl.conf中加入 net.core.somaxconn=511 ,然後執行 sysctl ‐p 生效,解決預設設 置為乙個較低的值128的警告。

3. overcommit_memory 設定為0,在低記憶體環境下的後台儲存可能失敗。在檔案 /etc/sysctl.conf 中添 加 vm.overcommit_memory = 1 ,然後重啟或執行命令 sysctl vm.overcommit_memory=1

4.如果伺服器的"transparent huge pages (thp)"支援在核心中啟用了。這將在使用

redis時造成延遲和 記憶體使用問題。使用root執行命令

echo never > /sys/kernel/mm/transparent_hugepage/enabled ,並且將它新增到你的/etc/rc.local中使在 重啟後仍然保持生效來修復這個問題。在thp禁用之後redis必須重啟。

四、安裝gcc編譯工具,不然會有編譯不過的問題

yum install gcc g++ gcc-c++ make -y

su - sw

cd backup

wget

tar -xvf redis-4.0.1.tar.gz

cd redis-4.0.1

make

redis‐benchmark:效能測試工具,測試redis在你的系統及配置下的讀寫效能

redis‐check‐aof:用於修復出問題的aof檔案

redis‐check‐dump:用於修復出問題的dump.rdb檔案

redis‐cli:redis命令列互動客戶端

redis‐sentinel:redis‐server別名

redis‐server:redis伺服器啟動程式

六、redis的配置修改

redis節點,所以配置檔案要複製三份,分別用於用於規劃的伺服器端口號命名區別

七、編輯redis8601.conf檔案

1. 設定bind位址為本機ip,&&為本機ip,需要改為其他節點機器可訪問的ip,否則建立集群時無法訪問對應的埠,無法建立集群

bind 192.168.26.*

2. 修改daemonize為yes,即以後台程式方式執行

daemonize yes

3. 修改服務埠

port 8601

4. 修改pid生成路徑

需要手動建立run目錄存放pid路徑

5.  修改日誌檔案的位置

需要手動建立日誌目錄

需要手動建立該目錄

7.  資料檔名

dbfilename "dump8601.rdb"

8.  是否每次更新操作進行日誌記錄

檔名設定

9.  是否支援集群

cluster-enabled yes

10. 集群配置檔名

cluster-config-file "nodes-8601.conf"

八、複製redis8601.conf檔案為另外兩個節點修改

1. cp redis8601.conf redis8602.conf

cp redis8601.conf redis8603.conf

2.統一替換配置檔案redis8602.conf和redis8603.conf的8601為8602和8603

sed -i 's/8601/8602/g' redis8602.conf

sed -i 's/8601/8603/g' redis8603.conf

3.要手動建立8602和8603的日誌目錄

九、啟動redis各節點服務

十、指令碼啟動

mkdir ~/bin

vim redis.sh

#!/bin/bash

case $1 in

start)

if [ "$?" -eq 0 ];then

ps -ef|grep redis|grep -v grep

echo "redis is started"

else

echo "redis is error"

exit 10

fi ;;

stop)

for pid in $(ps -ef|grep redis|grep -v "grep"|egrep -v "$"|awk -f " " ''|uniq);do

kill -9 $pid >> /dev/null 2>&1

done

#echo "redis is stopped"

;; restart)

$ stop

$ start

;; esac

十一、集群搭建

1.yum -y install ruby-devel  ruby-irb  ruby-libs ruby-rdoc ruby rubygems-devel rubygems

安裝redis-gem

gem install --local redis‐3.3.3.gem

檢視安裝

gem list redis

3.使用 redis‐trib.rb 指令碼建立集群 redis‐trib.rb 在redis的原始碼包的src目錄中:

cd ~/backup/redis-4.0.1/src/

十二、 為redis各節點設定密碼 為redis各節點設定密碼,應用設定裡也要設定redis的密碼,如果密碼不匹配,則應用無法連線上 redis。

密碼均設定為:111111   修改配置檔案 直接修改配置檔案的方法,需要修改完後重啟redis服務。

1.在每個節點的配置檔案末尾加上: 然後重啟所有節點的redis使密碼生效即可。 masterauth "111111" requirepass "111111"

vim redis8601.conf 新增

masterauth "111111"

requirepass "111111"

2. 已設定了密碼的節點建立集群,但此時建立集群,redis‐trib.rb指令碼會提示無法連線到redis節點,這是因為ruby的redis gem中預設的客戶 端連線密碼為空,

所以導致redis‐trib.rb指令碼無法建立集群。 可以修改ruby的redis gem的預設redis客戶端密碼即可

vi /usr/local/share/gems/gems/redis-3.3.3/lib/redis/client.rb 如果redis‐3.3.3.gem是使用非root安裝的,則在使用者主目錄下搜尋client.rb即可找到。

使用root編輯redis gem 裡的client.rb檔案: 第15行為設定密碼,預設為空: :password => "111111", 修改完後,再回去執行redis‐trib.rb即可連線上redis進行集群操作。

vi /usr/local/share/gems/gems/redis-3.3.3/lib/redis/client.rb

15       :password => "111111",  

3.然後進行集群搭建

./redis-trib.rb create --replicas 1 192.168.26.128:8601 192.168.26.128:8602 192.168.26.128:8603 192.168.26.129:8601 192.168.26.129:8602 192.168.26.129:8603

4.如果有報錯[err] node 192.168.26.129:8601 is not empty. either the node already knows other nodes (check with cluster nodes) or contains some key in database 0.

刪除各個節點下面的redis.log和dump下面的aof,rdb,conf檔案 十

三、檢視集群狀態

./redis-trib.rb check 192.168.26.129:8602   

搭建Hadoop集群(生產環境)

hadoop是乙個由apache 會所開發的分布式系統基礎架構。使用者可以在不了解分布式底層細節的情況下,開發分布式程式。充分利用集群的威力進行高速運算和儲存。1 hadoop實現了乙個分布式檔案系統 hadoop distributed file system 簡稱hdfs。hdfs有高容錯性的特...

mongo分片集群生產環境操作步驟

mongodb 支援通過分片技術從而進行水平擴充套件,用以支撐海量資料集和高吞吐量的操作。如果資料集不夠大,還是建議您使用 mongodb 副本集,因為分片需要處理更多的技術細節,所以在分片環境下其效能可能始終沒有副本集效能強。本文通過介紹如何搭建 mongodb 分片集群以及及一些相關核心概念,可...

Linux 環境編譯安裝mysql 原始碼安裝包

自 標註 1 檢查本機是否有安裝mysql資料庫。2 解除安裝系統自帶的mysql資料庫。解除安裝之前需要先把mysql資料庫停止 3 檢視是否有殘留mysql目錄或檔案。5 檢查安裝編譯所需要的工具和庫是否已經安裝完成。6 編譯安裝mysql前需要先建立mysql使用者和組,建立mysql安裝目錄...