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 |
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
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一個例項
dao// JedisCluster
@Bean
publicJedisClusterJedisClusterFactory(){
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;
}
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{
@Autowired
JedisCluster jedisCluster;
@Override
public<T>String addByKey(String key, T object)throwsIOException{
String object2JsonString =JsonUtil.object2JsonString(object);
String set = jedisCluster.set(key, object2JsonString);
return set;
}
@Override
public<T>String add(T object)throwsIOException{
String uuid = UUID.randomUUID().toString().trim().replaceAll("-","");
String object2JsonString =JsonUtil.object2JsonString(object);
jedisCluster.set(uuid, object2JsonString);
return uuid;
}
@Override
publicObject 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