中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現分布式緩存redis-cluster環境搭建及wishstack調用Jedis

發布時間:2021-12-10 17:42:00 來源:億速云 閱讀:133 作者:柒染 欄目:云計算

如何實現分布式緩存redis-cluster環境搭建及wishstack調用Jedis,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

redis集群三種方式

1、Redis官方提供的集群解決方案-Redis-cluster (剛發布差不多一年)

2、 Twemproxy ( twitter貢獻的) 使用時間比較長,比較成熟,但是有些功能不支持

3、豌豆尖針對Twemproxy 進行改良優化后的解決方案codis

更多分布式緩存方案級別選型請參考博文:http://my.oschina.net/tantexian/blog/685620

redis應用場景:任何需要用到緩存的地方,解決本地緩存數據量太小問題。分布式緩存能有效防止本地緩存失效數據庫雪崩現象。 解決分布式應用中緩存不能共用(分布式session保存)。云計算中為客戶提供緩存分布式緩存redis服務(青云、UnitedStack等廠商已經具有了)

接下來主要講解如何搭建Redis-cluster集群環境及wishstack如何使用Jedis調用Redis集群:

mkdir cluster-test

cd cluster-test

mkdir 7000 7001 7002 7003 7004 7005

yum install gcc wget -y

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

tar xzvf redis-3.0.5.tar.gz

cd redis-3.0.5

make(直接make報錯則使用make MALLOC=libc)

yum install tcl -y

make test

make install

安裝完畢redis-*常規操作命令腳本即被copy到linux bin下面,可以直接使用(當然也可以使用編譯完的源碼包./redis-3.0.5/src/下面的腳本)

將redis源碼包的配置文件復制到7000/

cp redis-3.0.5/redis.conf 7000/

vi 7000/redis.conf

修改配置文件中的下面選項

port 7000

daemonize yes

cluster-enabled yes

cluster-config-file nodes-7000.conf

cluster-node-timeout 5000

appendonly yes

將修改好的7000/redis.conf文件復制到其他文件夾(修改redis.conf 端口port為對于的port)

cp 7000/redis.conf 7001/

cp 7000/redis.conf 7002/

cp 7000/redis.conf 7003/

cp 7000/redis.conf 7004/

cp 7000/redis.conf 7005/

注:7001文件夾下面的redis.conf將端口修改為7001,其他依次類推。

分別啟動6個redis實例:

redis-server ./7000/redis.conf

redis-server ./7001/redis.conf

redis-server ./7002/redis.conf

redis-server ./7003/redis.conf

redis-server ./7004/redis.conf

redis-server ./7005/redis.conf

redis-server ./7000/redis.conf && redis-server ./7001/redis.conf && redis-server ./7002/redis.conf && redis-server ./7003/redis.conf && redis-server ./7004/redis.conf&& redis-server ./7005/redis.conf

如何實現分布式緩存redis-cluster環境搭建及wishstack調用Jedis

使用ruby腳本redis-trib.rb執行redis的創建集群命令創建集群

#redis3.0.5源碼包中的redis-trib.rb的create子命令構建集群

其中參數--replicas

則指定了Redis Cluster中的每個Master節點配備幾個Slave節點

其中節點角色由順序決定,先master之后是slave

使用redis-trib.rb腳本必須有ruby環境,及redis的ruby接口。

yum -y install ruby ruby-devel rubygems rpm-build

gem install redis(網速不行則使用淘寶的gem源:gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/)

如何實現分布式緩存redis-cluster環境搭建及wishstack調用Jedis

創建redis集群:

./redis-3.0.5/src/redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
./redis-3.0.5/src/redis-trib.rb create --replicas 1 172.31.2.32:7000 172.31.2.32:7001 172.31.2.32:7002 172.31.2.32:7003 172.31.2.32:7004 172.31.2.32:7005

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

這個命令在這里用于創建一個新的集群, 選項--replicas 1 表示我們希望為集群中的每個主節點創建一個從節點。

之后跟著的其他參數則是這個集群實例的地址列表,3個master3個slave

redis-trib 會打印出一份預想中的配置給你看, 如果你覺得沒問題的話, 就可以輸入 yes , redis-trib 就會將這份配置應用到集群當中,讓各個節點開始互相通訊,最后可以得到如下信息:

[OK] All 16384 slots covered

這表示集群中的 16384 個槽都有至少一個主節點在處理, 集群運作正常。


如何實現分布式緩存redis-cluster環境搭建及wishstack調用Jedis

測試redis-cluster:

如何實現分布式緩存redis-cluster環境搭建及wishstack調用Jedis

如何實現分布式緩存redis-cluster環境搭建及wishstack調用Jedis

slaveof配置項。

./redis-trib.rb create --replicas添加主從節點???

如何實現分布式緩存redis-cluster環境搭建及wishstack調用Jedis

注:若報上述錯誤,則使用redis-cli -c -p 7000端口連接,使用dbsize命令,如果不為零,則使用flushall命令清零。如果報是slave不能清零,

則找到該slave對應的master,執行上述操作。知道dbsize為0.

如何實現分布式緩存redis-cluster環境搭建及wishstack調用Jedis

如何實現分布式緩存redis-cluster環境搭建及wishstack調用Jedis

redis-cli -c -p 7000 shutdown && redis-cli -c -p 7001 shutdown && redis-cli -c -p 7002 shutdown && redis-cli -c -p 7003 shutdown && redis-cli -c -p 7004 shutdown &&redis-cli -c -p 7005 shutdown

redis-server ./7000/redis.conf && redis-server ./7001/redis.conf && redis-server ./7002/redis.conf && redis-server ./7003/redis.conf && redis-server ./7004/redis.conf&& redis-server ./7005/redis.conf

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

注:del-node之前需要將該節點./redis-trib.rb reshard 127.0.0.1:7003到其他節點,只有空的實例才能被刪除。

如果使用keys * 查詢到結果為空,說明當前實例保存數據為空,能夠使用del-node命令移除。

如何實現分布式緩存redis-cluster環境搭建及wishstack調用Jedis

如何實現分布式緩存redis-cluster環境搭建及wishstack調用Jedis

如何實現分布式緩存redis-cluster環境搭建及wishstack調用Jedis

將127.0.0.1::7000關掉:redis-cli -c -p 7000 shutdown

更多關于redis-cli操作請參考:http://blog.csdn.net/tantexian/article/details/49924873

接下來再172.31.2.33上面重新啟動redis-server來講該節點添加到上述創建好的172.31.2.32的redis集群中。

第一步還是跟上述步驟一樣,安裝redis基礎環境。

如何實現分布式緩存redis-cluster環境搭建及wishstack調用Jedis

如何實現分布式緩存redis-cluster環境搭建及wishstack調用Jedis

將172.31.2.33上面新跑的實例*:8000 及*:8001加入到集群中來。

cluster集群相關命令,更多redis相關命令見文檔:http://redis.readthedocs.org/en/latest/

  1. 集群

  2. CLUSTER INFO 打印集群的信息

  3. CLUSTER NODES 列出集群當前已知的所有節點(node),以及這些節點的相關信息。

  4. 節點

  5. CLUSTER MEET <ip> <port> 將 ip 和 port 所指定的節點添加到集群當中,讓它成為集群的一份子。

  6. CLUSTER FORGET <node_id> 從集群中移除 node_id 指定的節點。

  7. CLUSTER REPLICATE <node_id> 將當前節點設置為 node_id 指定的節點的從節點。

  8. CLUSTER SAVECONFIG 將節點的配置文件保存到硬盤里面。

  9. 槽(slot)

  10. CLUSTER ADDSLOTS <slot> [slot ...] 將一個或多個槽(slot)指派(assign)給當前節點。

  11. CLUSTER DELSLOTS <slot> [slot ...] 移除一個或多個槽對當前節點的指派。

  12. CLUSTER FLUSHSLOTS 移除指派給當前節點的所有槽,讓當前節點變成一個沒有指派任何槽的節點。

  13. CLUSTER SETSLOT <slot> NODE <node_id> 將槽 slot 指派給 node_id 指定的節點,如果槽已經指派給另一個節點,那么先讓另一個節點刪除該槽>,然后再進行指派。

  14. CLUSTER SETSLOT <slot> MIGRATING <node_id> 將本節點的槽 slot 遷移到 node_id 指定的節點中。

  15. CLUSTER SETSLOT <slot> IMPORTING <node_id> 從 node_id 指定的節點中導入槽 slot 到本節點。

  16. CLUSTER SETSLOT <slot> STABLE 取消對槽 slot 的導入(import)或者遷移(migrate)。

  17. CLUSTER KEYSLOT <key> 計算鍵 key 應該被放置在哪個槽上。

  18. CLUSTER COUNTKEYSINSLOT <slot> 返回槽 slot 目前包含的鍵值對數量。

  19. CLUSTER GETKEYSINSLOT <slot> <count> 返回 count 個 slot 槽中的鍵。

真是場景的redis集群環境部署:

建議至少三臺機器:(其實redis.server服務時PING-PONG無中心架構,且,可以在同一臺機器上面啟動多個master及slave)

node1:172.31.2.31

node2:172.31.2.32

node3:172.31.2.33

三組一主兩從設計:

172.31.2.31:7000(主) 172.31.2.32:7000(從) 172.31.2.33:7000(從) 

172.31.2.32:7001(主) 172.31.2.31:7001(從) 172.31.2.33:7001(從) 

172.31.2.33:7002(主) 172.31.2.31:7002(從) 172.31.2.32:7002(從) 

這樣就達到了比較高的穩定性。

如何實現分布式緩存redis-cluster環境搭建及wishstack調用Jedis

jedis使用:

https://github.com/xetorthio/jedis

如何實現分布式緩存redis-cluster環境搭建及wishstack調用Jedis

如何實現分布式緩存redis-cluster環境搭建及wishstack調用Jedis

如何實現分布式緩存redis-cluster環境搭建及wishstack調用Jedis

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

贵南县| 新丰县| 浑源县| 韩城市| 额敏县| 合川市| 宽城| 连平县| 浦东新区| 梨树县| 南华县| 邹平县| 阿拉善盟| 云阳县| 元江| 锡林郭勒盟| 宜君县| 涞源县| 安阳县| 丹巴县| 黔南| 前郭尔| 宜兰市| 霍州市| 柳林县| 屏边| 巫山县| 连平县| 肇州县| 大石桥市| 安新县| 麻城市| 章丘市| 子长县| 翁源县| 车致| 禹城市| 手机| 福鼎市| 堆龙德庆县| 芷江|