redis集群的搭建

########環境#########
centos 7.2 , 
gcch 環境
ruby 2.0.0 redis
3.2.8 redis-3.3.3gem

?

公司要求搭建redis集群, 本來覺得挺好搞的,沒想到弄到現在....

1, 環境準備

gcc , ruby 等環境準備

yum -y install gcc?ruby ruby-devel rubygems rpm-build zlib

redis-ruby接口安裝, 我直接yum安裝的,

gem install redis

你也可以下載 redis.3.3.3.gem 然后執行命令

?

gem install redis-3.3.3.gem

2, 再說下單機redis的搭建方法

1, 下載redis 3.2.8 的安裝包:?

wget http://download.redis.io/releases/redis-3.2.8.tar.gz

2, 解壓

tar -zxvf redis-3.2.8

3, 進入解壓目錄下

make

然后安裝

make install PREFIX=/opt/wenbronk_soft/redis/redis1

安裝完成后, 可在redis1 目錄下看到一個bin目錄, 對, 就是他了.

?

4, 此時已經可以訪問了, 但需要更改下配置文件, 才可以使用外部ip訪問

redis.conf 在redis的解壓目錄下

cp /opt/wenbronk_soft/redis/redis-3.2.8/redis.conf /opt/wenbronk_soft/redis/redis1/bin

vim?

bind 192.168.xx.202       (當前主機的ip)

5, 啟動

./redis-server ./redis.conf

現在已經可以通過本地的 ./redis-cli -h localhost -p 6379 或者通過外部ip進行訪問了.

3, 接下來是集群的安裝

安裝集群之前, 首先要保證單個的redis是空的, 也就是沒有dump.rb文件沒有密碼設置, 就是 redis.conf中 masterauth        masterauth         沒有設置

?

這兒搭建一個臺機器上的偽集群, 分布式集群搭建和這個類似, 只是使用ruby創建集群時ip:port有所區別

注意: ? ? 至少需要 3 ?master+ 2 ?slave, 官方建議是 3 + 3 , 這兒使用 3 ?mater + 3 slave

?

1, 修改 redis.conf

添加守護進程: daemonize

port  7000                                        //端口7000,7001,7002,7003,7004,7005,7005
bind 本機ip                                       //默認ip為127.0.0.1 需要改為其他節點機器可訪問的ip 否則創建集群時無法訪問對應的端口,無法創建集群
daemonize    yes                               //redis后臺運行, 
# pidfile  /var/run/redis_7000.pid          //pidfile文件對應7000,7001,7002
cluster-enabled  yes                           //開啟集群  把注釋#去掉
cluster-config-file  nodes_7000.conf   //集群的配置  配置文件首次啟動自動生成 7000,7001,7002
cluster-node-timeout  15000                //請求超時  默認15秒,可自行設置
appendonly  yes                           //aof日志開啟  有需要就開啟,它會每次寫操作都記錄一條日志 

2, 復制解壓目錄下的 ?redis-trib.rb 到 安裝 目錄下 (/opt/wenbronk_soft/redis/redis/bin)?

cp /opt/wenbronk_soft/redis/redis-3.2.8/src/redis-trib.rb /opt/wenbronk_soft/redis/redis/bin

此時bin下目錄結構為:?

?

3, 復制bin為另外6個實例

4, 進入到每個目錄下更改 port設置

從 7000 - 7005

5, 使用啟動腳本啟動6個實例

cd bin
./redis-server ./redis.conf
cd ..
cd bin1
./redis-server ./redis.conf
cd ..
cd bin2
./redis-server ./redis.conf
cd ..
cd bin3
./redis-server ./redis.conf
cd ..
cd bin4
./redis-server ./redis.conf
cd ..
cd bin5
./redis-server ./redis.conf
cd ..

修改腳本權限

chmod u+x start.sh

6, 查看redis實例額運行狀態

ps -ef | grep redis

netstat -tnlp | grep redis

?

?7, 創建集群?

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

?

?

[wenbronk@localhost bin]$ ./redis-trib.rb  create  --replicas  1 192.168.50.202:7000 192.168.50.202:7001 192
.168.50.202:7002 192.168.50.202:7003 192.168.50.202:7004 192.168.50.202:7005>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.50.202:7000
192.168.50.202:7001
192.168.50.202:7002
Adding replica 192.168.50.202:7003 to 192.168.50.202:7000
Adding replica 192.168.50.202:7004 to 192.168.50.202:7001
Adding replica 192.168.50.202:7005 to 192.168.50.202:7002
M: b06c9670ad6e16cf41c9eeefb8260ad29dbb52e8 192.168.50.202:7000slots:0-5460 (5461 slots) master
M: 048291cbc8e9ccf81de57f02150447340d310fe0 192.168.50.202:7001slots:5461-10922 (5462 slots) master
M: 740557eca4a8fa31d67fe6a7f6b34814f3f96094 192.168.50.202:7002slots:10923-16383 (5461 slots) master
S: 63a9d243b8da03169dee24ec9403e50f36ab7cb0 192.168.50.202:7003replicates b06c9670ad6e16cf41c9eeefb8260ad29dbb52e8
S: 824b5d23e012cd7082701e3737ce8ea21eb8abe3 192.168.50.202:7004replicates 048291cbc8e9ccf81de57f02150447340d310fe0
S: f00948f8f9df4c10cba340cab3f0767d98f00b77 192.168.50.202:7005replicates 740557eca4a8fa31d67fe6a7f6b34814f3f96094
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join...
>>> Performing Cluster Check (using node 192.168.50.202:7000)
M: b06c9670ad6e16cf41c9eeefb8260ad29dbb52e8 192.168.50.202:7000slots:0-5460 (5461 slots) master1 additional replica(s)
M: 740557eca4a8fa31d67fe6a7f6b34814f3f96094 192.168.50.202:7002slots:10923-16383 (5461 slots) master1 additional replica(s)
S: 824b5d23e012cd7082701e3737ce8ea21eb8abe3 192.168.50.202:7004slots: (0 slots) slavereplicates 048291cbc8e9ccf81de57f02150447340d310fe0
S: f00948f8f9df4c10cba340cab3f0767d98f00b77 192.168.50.202:7005slots: (0 slots) slavereplicates 740557eca4a8fa31d67fe6a7f6b34814f3f96094
M: 048291cbc8e9ccf81de57f02150447340d310fe0 192.168.50.202:7001slots:5461-10922 (5462 slots) master1 additional replica(s)
S: 63a9d243b8da03169dee24ec9403e50f36ab7cb0 192.168.50.202:7003slots: (0 slots) slavereplicates b06c9670ad6e16cf41c9eeefb8260ad29dbb52e8
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

ok, 集群搭建完成

?深坑, redis 集群之間的通訊端口為basePort + 1w

4 鏈接集群

1, redis客戶端連接

?-c 連接集群

-p 如果bind 綁定的是本機地址, 那么必須加

./redis-cli -h 192.168.50.202 -p 7006 -c

2, 簡單測試

set abc 1234
get abc

?

3, java連接

Jedis Cluster 會自動去發現集群中的節點,所以JedisClusterNodes只需要 add一個實例

ps -ef | grep redis | awk '{print $2}' | xargs kill -9

?

明天單獨寫吧.. 東西很多..

?

原創地址, http://www.cnblogs.com/wenbronk/p/6864390.html? 轉載請注明出處, 謝謝

轉載于:https://www.cnblogs.com/wenbronk/p/6864390.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252674.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252674.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252674.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2017-2018-1 20155227 《信息安全系統設計基礎》第十三周學習總結

2017-2018-1 20155227 《信息安全系統設計基礎》第十三周學習總結 找出全書你認為最重要的一章,深入重新學習一下,要求(期末占10分): 完成這一章所有習題詳細總結本章要點給你的結對學習搭檔講解你的總結并獲取反饋我選…

進程間五種通信方式

進程間通信(IPC,InterProcess Communication)是指在不同進程之間傳播或交換信息。 IPC的方式通常有管道(包括無名管道和命名管道)、消息隊列、信號量、共享存儲、Socket、Streams等。其中 Socket和Streams支持不同主機…

電子書下載:Silverlight 5 in Action

下載:http://www.ctdisk.com/file/8447319

git 的使用方法

git 的使用有3個主要步驟: 1.1 工作區域操作: 在自己的git賬號下構建一個工作目錄, 并往工作目錄里添加文件內容(cp /root/data/VIP_Amount_prediction/* ./)。 cd 當前工作目錄, git init, 初始…

Codeforces 898E Squares and not squares

題目大意 給定 $n$($n$ 是偶數,$2\le n\le 2\times 10^{5}$)個非負整數 $a_1,\dots, a_n$($a_i\le 10^9$)。 要求將其中 $n/2$ 個數變成平方數,另外 $n/2$ 個數變成非平方數,變化后的數必須仍是…

UTC時間

每個地區都有自己的本地時間,在網上以及無線電通信中時間轉換的問題就顯得格外突出。我自己就經常混淆于此,特地研究了一下,記錄在此以備忘。 整個地球分為二十四時區,每個時區都有自己的本地時間。在國際無線電通信場合&#xff…

Virtualbox橋接網卡設置

正常情況下,像設置virtualbox虛擬機的橋接網卡非常簡單,只需要點配置,然后在配置界面點擊網絡,然后在右邊的網絡里選擇橋接網絡即可。但是如果這么簡單就好了,今天要說的就是在不正常的情況下是怎么設置的。 工具/原料…

利用CSS、JavaScript及Ajax實現圖片預加載的三大方法

預加載圖片是提高用戶體驗的一個很好方法。圖片預先加載到瀏覽器中,訪問者便可順利地在你的網站上沖浪,并享受到極快的加載速度。這對圖片畫廊及圖片占據很大比例的網站來說十分有利,它保證了圖片快速、無縫地發布,也可幫助用戶在…

ThinkJS前端搭配vue時的Nginx配置

Thinkjs 作為奇舞團開源的nodejs mvc框架之一,引起了很多NodeJS程序員的親賴。但是其關于靜態文件處理部分支持不夠完善,主要是體現在SPA單頁應用,之前在ThinkJS 2.*版本時寫過一個關于處理單頁應用靜態資源的middleware think-resource-spa,…

SQL疑難雜癥【4 】大量數據查詢的時候避免子查詢

前幾天發現系統變得很慢,在Profiler里面發現有的SQL執行了幾十秒才返回結果,當時的SQL如下: 可以看得出來,在652行用了子查詢,恰巧目標表(QS_WIP)中的記錄數為100000000,通過如下SQL可以得到: S…

2020-11-27

總結各種RGB轉YUV的轉換公式 如果數據位寬都以8位來說.ITU709:允許 0~255之間所有數據 ITU601:只允許 16~235之間數據, 601是SDTV的數據結構; 656是SDTV的interface 709是HDTV的數據結構 ;1120是HDTV的interface 最近在學習視頻的顏色空間轉換&#x…

python學習筆記1-基礎語法

1 在3版本中print需要加上括號2 多行語句:用\連接 1 item_one1 2 item_two2 3 item_three3 4 total item_one \ 5 item_two \ 6 item_three 7 print (total) 3 引號   字符串通常在引號中 不管是單引號 雙引號還是三引號   必須保證前后一致…

『原創』一個基于Win CE 5.0的Txt文件閱讀器

最近,拿到一臺親戚送的GPS導航儀,其系統是基于WinCE5.0的,所以我覺得可以寫點小程序上去,上網一搜,還附帶破解方法,把GPS破解后就變成一臺屏幕超大的PDA了,于是我想用它看電子書,無奈…

ARM Cortex-A系列(A53、A57、A73等)處理器性能分類與對比

在如今這個電子產品泛濫的年代,僅僅靠品牌或是外觀已經不足以辨別產品的優劣,其內置的處理器自然也就成為了分辨產品是否高端的標準之一。那么我們今天就不妨好好了解一下近幾年來電子產品中較為主流的RAM處理器。 在這之前讓我們先簡單認識一下處理器的…

批量創建10個系統帳號tianda01-tianda10并設置密碼

#1、添加用戶 useradd tianda01#2、非交互式給密碼 echo "pass"|passwd --stdin tianda#3、01-10 加0思路 (1)echo {00..10}(2)seq -w 10#隨機密碼6種方法 (1)echo $RANDOM | md5sum | cut -c 1-8(2)yum -y install expect mkpasswd -l 12 -d 5 #expect隨機mkpasswd …

DIV常用屬性大全自己整理

一、屬性列表 代碼如下:color : #999999 文字顏色 font-family : 宋體 文字字型 font-size : 10pt 文字大小 font-style:itelic 文字斜體育 font-variant:small-caps 小字體 letter-spacing : 1pt 文字間距 line-height : 200% 設定行高 font-weight:bold 文字粗體 vertical-a…

.NET 3.5 - DLINQ(LINQ to SQL)之面向對象的添加、查詢、更新和刪除

步步為營VS 2008 .NET 3.5(8) - DLINQ(LINQ to SQL)之面向對象的添加、查詢、更新和刪除作者&#xff1a;webabcd介紹以Northwind為示例數據庫&#xff0c;DLINQ(LINQ to SQL)之完全面向對象的添加操作、查詢操作、更新操作和刪除操作示例Sample.aspx <% Page Language&quo…

ARM處理器的分類

對于ARM處理器而言&#xff0c;其目前有Classic系列、Cortex-M系列、Cortex-R系列、Cortex-A系列和Cortex-A50系列5個大類。 Classic系列 該系列處理器由三個子系列組成&#xff1a; ARM7系列&#xff1a;基于ARMv3或ARMv4架構 ARM9系列&#xff1a;基于ARMv5架構 ARM11系列…

Poj 1019

傳送門&#xff1a;http://poj.org/problem?id1019 主要是找數學規律 然后用好pow和log函數&#xff0c;由于數組過大&#xff0c;數組的類型用unsigned 1 #include<iostream>2 #include<cmath>3 using namespace std;4 5 int t;6 int k;7 int n;8 unsigned a[312…

ARM版本系列及家族成員梳理

ARM公司簡介 ARM是Advanced RISC Machines的縮寫&#xff0c;它是一家微處理器行業的知名企業&#xff0c;該企業設計了大量高性能、廉價、耗能低的RISC &#xff08;精簡指令集&#xff09;處理器。 1985年第一個ARM原型在英國劍橋誕生。 公司的特點是只設計芯片&#xff0c…