日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

redis集群的搭建

發布時間:2023/12/13 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

總結

以上是生活随笔為你收集整理的redis集群的搭建的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。