Jedis cluster客戶端使用
前言:
由於spring-data-redis不支援,redis叢集的操作。所以更換客戶端,使用Jedis cluster。
正文:
一.序言
前面搭建了個3個msater-slave 的本地叢集測試,這裡用Java 的客戶端 進行一些簡單測試,看看叢集是否生效。
redis client 推薦:http://redis.io/clients
我使用的:https://github.com/xetorthio/jedis
二.測試
maven:
Java程式碼- <dependency>
-
<groupId>redis.clients</groupId>
- <artifactId>jedis</artifactId>
- <version>2.8.1</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- @org.junit.Test
- public void cluster(){
- String key = "2";
-
// 這東西 可以直接看到key 的分片數,就能知道放哪個 節點
- System.out.println(JedisClusterCRC16.getSlot(key));
- Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>();
- jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7000));
- jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7001));
-
jedisClusterNodes.add(new HostAndPort("127.0.0.1"
- // 3個master 節點
- JedisCluster jc = new JedisCluster(jedisClusterNodes);
- System.out.println(jc.get(key));
- jc.setnx(key, "bar");
- String value = jc.get(key);
- System.out.println(value);
- }
別人的例子,我測試:
Java程式碼- Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>();
- jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7000));
- jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7001));
- jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7002));
- JedisCluster jc = new JedisCluster(jedisClusterNodes);
- for (int i = 1; i <= 10000; i++) {
- long start = System.currentTimeMillis();
- jc.set("k:" + i, "v" + i);
- System.out.print("set " + i +"th value in " + (System.currentTimeMillis() - start) + " ms");
- start = System.currentTimeMillis();
- jc.get("k:" + i);
- System.out.println(", get " + i +"th value in " + (System.currentTimeMillis() - start) + " ms");
- }
由於是本機 固態硬碟,速度 槓桿的。
三.測試反饋:
1.叢集正常,基本操作都OK
2.如果某個master 掛了,比如7001, 叢集依然可用,會存放到對應的salve 7004 上去。
3.如果master -slave 都掛了,會導致 整個叢集不可用,異常,因此最好配有M-S 的結構
4.我預設配置,有rdb 和 aof 持久化,因此master 掛了,重啟,資料可以從salve 上恢復
5.存放的key 會根據返回的位置,放在不同的slot 上,實現均衡
小結:
1.這裡僅僅是最基本的配置,和簡單測試
2.如果配置檔案以及更多命令得參考文件
2.1 客戶端命令:http://redis.io/topics/clients
2.2 中文jredis API:http://www.360doc.com/content/15/0328/12/5054188_458684113.shtml 建議看原始碼用例
2.3 redis.conf 中文(舊):http://www.cppblog.com/HappySky2046/archive/2014/06/18/207323.html
3.如果前期負載不很大,可以開啟持久化,畢竟叢集 還不熟悉,如果負載高了,而且叢集比較熟悉了,業務也不依賴的情況下,可以關閉,或者 適當調整,調整多看看 原理 和 配置檔案說明 就行了。
相關推薦
Jedis cluster客戶端使用
前言: 由於spring-data-redis不支援,redis叢集的操作。所以更換客戶端,使用Jedis cluster。 正文: 一.序言 前面搭建了個3個msater-slave 的本地叢集測試,這裡用Java 的客戶端 進行一些簡單測試,看看叢
一個基於golang的redis cluster 客戶端
用法 引入並建立叢集 import "github.com/gitstliu/go-redis-cluster" cluster, err := redis.NewCluster(
Redis入門很簡單之七【使用Jedis實現客戶端Sharding】
1. sharding機制:即通常所說的“分片”,允許資料存放在不同的物理機器上, 以適應資料量過大的場景,克服單臺機器記憶體或者磁碟空間的限制。而這種“離散式”地存放,對客戶端來說是透明的,對客戶端來講,完全看不到這種差別。 2. 常見的記憶體快取中介軟體,比如Memcached支援伺服器端Sha
Redis Cluster集群搭建後,客戶端的連接研究(Spring/Jedis)(待實踐)
turn ron 記錄 redis div println 刪除 clu name 說明:無論是否已經搭建好集群,還是使用什麽樣的客戶端去連接,都是必須把全部IP列表集成進去,然後隨機往其中一個IP寫。 這樣做的好處: 1、隨機IP寫入之後,Redis Cluster代
Redis-jedis客戶端報Too many Cluster redirections異常
jedis客戶端報Too many Cluster redirections異常?很困擾?不知道是什麼問題?請看以下文章,為你一一解答。 Let's Go! 1.解決方案 暫沒發現比較好的解決方案。 2.環境 Redis 3.x Cluster Jedis 2.
Redis客戶端之Jedis(Key、String、Set、List、pub/sub、cluster、pool、pipleline)
環境: OS:CentOS7 64位 server版本:Redis 3.2.0 client 版本:Jedis 2.8.0 在Maven中引用jedis的jar: <dependencies> <dependency&
【轉載】java 客戶端鏈接不上redis解決方案 (jedis)
主機 rom number table 出現 gin 現在 start http 本文出自:http://blog.csdn.net/lulidaitian/article/details/51946169 出現問題描述: 1.Could not get a resou
Jedis連線redis客戶端
1 單點的redis利用jedis客戶端連線 如何連線 1 //1 利用jedis連線物件操作redis 2 @Test 3 public void test01(){ 4 //構造一個具有連線資訊的jedis物件 5 //確定虛擬機器linux系
使用Jedis操作Redis-使用Java語言在客戶端操作---set型別
原文地址:http://www.cnblogs.com/lixianyuan-org/p/9509696.html 1 //測試set資料型別 2 /** 3 * 在Redis中,我們可以將Set型別看作為沒有排序的字元集合,和List型別一樣,我們也可以在該型別
redis-5.0 cluster帶認證及客戶端連線
Redis在3.0版正式引入redis-cluster叢集這個特性。Redis叢集是一個提供在多個Redis間節點間共享資料的程式集。Redis叢集是一個分散式(distributed)、容錯(fault-tolerant)的Redis記憶體K/V服務,叢集可以使
redis-5.0 cluster帶騰訊分分彩出售認證及客戶端連線
Redis在3.0版騰訊分分彩出售 dsluntan.com Q:3393756370 VX:17061863513正式引入redis-cluster叢集這個特性。Redis叢集是一個提供在多個Redis間節點間共享資料的程式集。Redis叢集是一個分散式(distr
通過jedis連線redis單機成功,使用redis客戶端可以連線叢集,但使用JedisCluster連線redis叢集一直報Could not get a resource from th
原因是這個地方以前我沒註釋redis.conf檔案中的bind 127.0.0.1 然後做叢集時使用的命令是: ./redis-trib.rb create –replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.
Redis 的 java 客戶端 jedis
Java 連線 MySql 我們有 mysql-connector ,連線 Redis 我們有 jedis。 一、引入依賴 <dependency> <groupId>redis.clients</groupId> <ar
Redis的java客戶端Jedis Client介紹(持續翻譯中)
1. 概覽 This article is an introduction to Jedis, a client library in Java for Redis – the popular in-memory data structure store that can persis
Akka-Cluster(3)- ClusterClient, 叢集客戶端
上篇我們介紹了distributed pub/sub訊息傳遞機制。這是在同一個叢集內的訊息共享機制:釋出者(publisher)和訂閱者(subscriber)都在同一個叢集的節點上,所有節點上的DistributedPubSubMediator通過叢集內部的溝通機制在底層構建了訊息流
Jedis 2.9.1、2.10.0 與 3.0.0 釋出,Redis 的 Java 客戶端
Jedis 2.9.1、2.10.0 與 3.0.0 釋出了,Jedis 是 Redis 的 Java 客戶端,它易於使用,與 Redis 2.8.x 和 3.x.x 完全相容。 2.9.1 與 2.10.0 更新: JedisCluster 掃描 bug 修復&nb
使用jedis客戶端連線redis,單機版和叢集版
單機版 1.入門例項 @Test public void testJedis(){ //建立一個jedis物件,需要指定服務的ip和埠號 Jedis jedis=new Jedis("192.168.25.11",
Redis 5.0 Cluster叢集帶認證及客戶端連線
Redis在3.0版正式引入redis-cluster叢集這個特性。Redis叢集是一個提供在多個Redis間節點間共享資料的程式集。Redis叢集是一個分散式(distributed)、容錯(fault-tolerant)的Redis記憶體K/V服務,叢集可以使用的功能是普通單機Redis所能使用的功能的一
Redis的Java客戶端工具使用(Jedis)
安裝 引入Maven依賴 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <versio
Redis 客戶端-Jedis
一、編碼實戰 1> 簡單使用 package org.jedisDomo; import redis.clients.jedis.Jedis; public class JedisDemo { public static void main(S