安裝
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安裝目錄...