1. 程式人生 > >Redis-3.x叢集配置(RedisCluster+SpringBoot+Jedis)

Redis-3.x叢集配置(RedisCluster+SpringBoot+Jedis)

此文由本人蔘考其他大神文件和資料,再結合當前環境做出的配置,有什麼問題請聯絡我.

部署計劃 部署6個redis節點,為3主3從。
IP地址
6379 192.168.101.121
6379
192.168.101.199
6379
192.168.101.123
6379
192.168.101.127
6379
192.168.101.125
6379
192.168.101.126
編譯安裝 (所有關於許可權問題全部sudo,啟動服務 sudo ./redis-server /data/redis/conf/redis.conf,真實環境下,若是以一個較低的許可權啟動redis,那麼就可能產生無法建立日誌以及rdb的問題) 建立目錄 mkdir redis     cd redis
    tar zxvf redis-3.2.4.tar.gz
    cd redis-3.2.4 make make install PREFIX=/data/redis-3.2.4    //預設安裝到/usr/local/bin目錄下。這裡指定安裝目錄data/redis-3.2.4
 ln -s /data/redis-3.2.4 /data/redis    //軟連線 mkdir /data/redis/conf    //建立目錄結構 mkdir /data/redis/log mkdir /data/redis/data     cp /home/redis/redis/redis-3.2.4/redis.conf /data/redis/conf/    //copy配置檔案     vim /data/redis/conf/redis.conf redis的配置     protected-mode no    //關閉保護模式     port 6379    //埠     daemonize yes
    //守護程序開啟,預設服務從後臺啟動
    loglevel verbose//日誌級別     logfile /data/redis/log/redis-6379.log    //日誌檔案位置     ==redis持久化rdb,AOF相關==     dbfilename dump.rdb    //redis持久化檔名稱 dir /data/redis/data/6379    //redis持久化檔案路徑,預設為當前路徑 appendonly yes    //開啟AOF appendfilename "appendonly.aof"    //AOF檔名稱     no-appendfsync-on-rewrite yes    //子程序在做rewrite時,主程序不呼叫fsync(由核心預設排程)     ==REPLICATION== slave-serve-stale-data yes    //當slave與master斷開連線,slave繼續提供服務     slave-read-only yes     repl-ping-slave-period 1    //slave ping master的時間間隔,單位為秒     repl-timeout 10    //複製超時,單位為秒,須大於repl-ping-slave-period的值  ==REDIS CLUSTER==
    cluster-enabled yes    //開啟叢集配置     cluster-config-file nodes-6379.conf    //節點配置檔案,這個檔案是服務啟動時自己配置建立的     cluster-node-timeout 5000    //叢集中各節點相互通訊時,允許"失聯"的最大毫秒數,如果超過沒向其它節點彙報成功,就認為該節點已掛。
    cluster-slave-validity-factor 0    //將該項設定為0,不管slave節點和master節點間失聯多久都會一直嘗試failover     repl-ping-slave-period 1 其他5臺機器配置     相同操作目錄可直接遠端拷貝
scp -r [email protected]:/data/redis/data /data/redis/ scp -r [email protected]:/data/redis/conf /data/redis/ scp -r [email protected]:/data/redis/log /data/redis/ 建立和啟動redis cluster前的準備工作
    yum -y install ruby    //安裝ruby     yum -y install rubygems    //安裝rubygems     wget https://rubygems.org/downloads/redis-3.3.1.gem    //安裝redis-3.3.1.gem     gem install -l redis-3.3.1.gem
    cp redis-3.2.4/src/redis-trib.rb /data/redis/bin/    //redis-trib.rb是redis官方提供的redis cluster管理工具,使用ruby實現。     ./redis-server /data/redis/conf/redis.conf    //啟動6臺服務 建立redis cluster
    redis-trib.rb create --replicas 1 192.168.101.121:6379 192.168.101.199:6379 192.168.101.123:6379 192.168.101.127:6379 192.168.101.125:6379 192.168.101.126:6379     #redis-trib.rb的create子命令構建   #--replicas 則指定了為Redis Cluster中的每個Master節點配備幾個Slave節點  進入redis客戶端     redis-cli -c -p 6379    //-c進入叢集模式     info//檢視資訊 cluster nodes//檢視節點資訊 CLUSTER SLOTS//檢視插槽資訊 節點操作 ./redis-trib.rb del-node 192.168.101.121:6379 '2ff326bc9084236ee6540d58d307893662ceff0b'//刪除節點
./redis-trib.rb add-node --slave --master-id 0ecc54ed34cc7e2e1ebca168ab4564b803992094 192.168.101.121:6379 192.168.101.125:6379//新增從節點,新增前需要刪除已存在的node.conf,rdb,aof檔案 ./redis-trib.rb reshard 192.168.101.121:6379//為新節點分配slot     ./redis-trib.rb check 192.168.101.121:6379    //檢查叢集執行狀態,只要輸入任意叢集中節點即可,會自動檢查所有相關節點。     ./redis-trib.rb fix 192.168.101.121:6379    //修復叢集(若node移除了,但是並沒有移除node上面的slot,從而導致了slot總數沒有達到16384,其實也就是slots分佈不正確。所以在刪除節點的時候一定要注意刪除的是否是Master主節點)。 關於叢集建立錯誤 叢集建立的時候如果沒有建立成功,那麼需要刪除叢集節點配置檔案,不然無法重新建立叢集 sudo rm /data/redis-3.2.4/data/6379/nodes-6379.conf

如果遇到Waiting for the cluster to join .......................................................  >>> Sending CLUSTER MEET messages to join the cluster 解決方式 sudo ./redis-cli -c -p 6379    //進入客戶端 CLUSTER MEET <ip> <port> 將 ip 和 port 所指定的節點新增到叢集當中。 Jedis的配置 config檔案需要新增 github上有這一句,Jedis Cluster 會自動去發現叢集中的節點,所以JedisClusterNodes只需要 add一個例項
// JedisCluster@BeanpublicJedisClusterJedisClusterFactory(){		LOG.info("JedisCluster建立!!");		LOG.info("redis地址:"+ host +":"+ port);Set<HostAndPort> jedisClusterNodes =newHashSet<HostAndPort>();JedisPoolConfig jedisPoolConfig =newJedisPoolConfig();		jedisPoolConfig.setMaxIdle(maxIdle);		jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);		jedisClusterNodes.add(newHostAndPort(host, port));JedisCluster jedisCluster =newJedisCluster(jedisClusterNodes, jedisPoolConfig);return jedisCluster;}
dao
package com.unioncast.db.rdbms.core.dao.commonDBDao.impl;import java.io.IOException;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Map.Entry;import java.util.UUID;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Repository;import com.unioncast.common.util.JsonUtil;import com.unioncast.db.rdbms.core.dao.commonDBDao.RedisDao;import redis.clients.jedis.JedisCluster;@Repository("redisDao")publicclassRedisDaoImplimplementsRedisDao{@AutowiredJedisCluster jedisCluster;@Overridepublic<T>String addByKey(String key, T object)throwsIOException{String object2JsonString =JsonUtil.object2JsonString(object);String set = jedisCluster.set(key, object2JsonString);return set;}@Overridepublic<T>String add(T object)throwsIOException{String uuid = UUID.randomUUID().toString().trim().replaceAll("-","");String object2JsonString =JsonUtil.object2JsonString(object);		jedisCluster.set(uuid, object2JsonString);return uuid;}@OverridepublicObject getObject(String key)throwsIOException{String string = jedisCluster.get(key);Object json2Object =JsonUtil.json2Object(string,Object.class);return json2Object;
            
           

相關推薦

Redis-3.x叢集配置RedisCluster+SpringBoot+Jedis

此文由本人蔘考其他大神文件和資料,再結合當前環境做出的配置,有什麼問題請聯絡我. 部署計劃 部署6個redis節點,為3主3從。 埠 IP地址

Redis-3.2.4叢集配置RedisCluster+SpringBoot+Jedis

來源http://blog.csdn.net/zhe1110/article/details/52993082 部署計劃 部署6個redis節點,為3主3從。 埠 IP地址 6379 192.168.10

redis之 集群配置主從復制

端口 cnblogs pid 分享 必須 服務器配置 主服務器 一個 cat 集群的作用:    集群的方式有二種:   第二種的好處是:master宕機以後可以直接切換到slave1 主從通信的過程   先通過dump導出大塊的rdb 然後把aof緩沖過來,然後通過

SpringBoot中Tomcat配置學習SpringBoot實戰

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

python2.X和python 3.X的區別持續更新中

在自學python過程中躺過的那些坑坑窪窪。。。 覺得有必要記錄一下 一。raw_input()和input()的區別和整合 1,在Python2.x中raw_input()和input(),兩個

Spark2.X 叢集安裝原生版詳細

Spark叢集安裝搭建最簡單的三臺主機的叢集。hadoop001    Master  hadoop002    Workerhadoop003    Worker詳細步驟如下。1.下載spark安裝包  下載地址spark官網:http://spark.apache.or

AOP實現方式3——通過來配置純POJO切面

1.定義介面Perform package com.show; /** * Created by kenneth on 2017/4/6. */ public interface Perform { void sing(); } 2.介面Perform的實現

redis 叢集配置基於3.0.5

前言 redis 是我們目前大規模使用的快取中介軟體,由於它強大高效而又便捷的功能,得到了廣泛的使用。現在的2.x的穩定版本是2.8.19,也是我們專案中普遍用到的版本。 redis在年初發布了3.0.0,官方支援了redis cluster,也就是叢集。至此結束了redis 沒有官方叢集的時代,之前我們

Redis-3.2.0叢集配置redis cluster

目錄 目錄 1 1. 前言 2 1. 前言 2. 部署計劃 依據官網介紹,部署6個redis節點,為3主3從。3臺物理機每臺都建立2個redis節點: 服務埠 IP地址 配置

Redis的分散式叢集搭建windows----RedisCluster叢集

今天研究了一下redis的叢集搭建,終於成功了,拿來給大家分享一下,希望對大家有幫助。如果需要原始碼和安裝包可以私我。 下載redis.進入redis資料夾呢 如果沒有redis.conf檔案,就新建一個 ,並在裡面寫上配置引數:                     

redis 3.3.2 叢集配置主從

環境 centos 7 minimal cd /usr/local tar -zxvf redis-3.2.3.tar.gz cd redis-3.2.3 make && make install   這個點如果報錯 zmalloc.h:50:31: e

Redis 3.0叢集搭建測試

Redis3.0 最大的特點就是有了cluster的能力,使用redis-trib.rb工具可以輕鬆構建Redis Cluster。Redis Cluster採用無中心結構,每個節點儲存資料和整個叢集狀態,每個節點都和其他所有節點連線。節點之間使用gossip協議傳播資訊以

Redis 3.0叢集搭建測試

四、客戶端叢集命令 叢集 cluster info 列印叢集的資訊 cluster nodes 列出叢集當前已知的所有節點(node),以及這些節點的相關資訊。 節點 cluster meet <ip> <port> 將ip和port所指定的節點

Redis 3.2.8 配置文件

rand 開啟 size log 安裝包 默認 clas 一個 logs 一、Redis 配置文件 之前 Redis 3.2.8 安裝與配置 中說到了,在Redis安裝包中有一個名為redis.conf的文件,該文件就是啟動redis時所需的配置文件。 在配置文件中對每一個

Spring Data Redis入門示例:程序配置

dex port scl lis fault gre source inf 操作 單機配置 redis.properties配置 #redis的服務器地址 redis.host=127.0.0.1 #redis的服務端口 redis.port=6379 #客戶端超時時間

Redis的安裝和配置

execute local bench redis-cli HR file 版本 dir mac 一. mac下redis的安裝 1. 官網http://redis.io/ 下載最新的穩定版本,這裏是3.2.0 2. sudo mv 到 /usr/local/ 3.

springboot-mybatis配置xml)/springboot-jpa配置

enc ren ati mysql har char date sources lec #springboot-mybatis配置(xml) spring.datasource.url=jdbc:mysql://localhost:3306/test spring.dat

redis 3.2+ 叢集實踐

redis叢集實踐 1、建立叢集 [[email protected] 7000]# redis-trib.rb create --replicas 1 10.9.251.104:7000 10.9.251.104:7001 10.9.251.104:70

Apache +Jetty的負載均衡與叢集配置

分別訪問http://192.168.55.229:9009/fgw/index.jsp和http://192.168.55.231:9009/fgw/index.jsp   重新整理會出現新的頁面:   (6)此時訪問http://192.16

Apache +Jetty的負載均衡與叢集配置