這篇文章給大家介紹如何在Java項(xiàng)目中調(diào)用redis集群,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

創(chuàng)新互聯(lián)公司專注于孫吳網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供孫吳營銷型網(wǎng)站建設(shè),孫吳網(wǎng)站制作、孫吳網(wǎng)頁設(shè)計(jì)、孫吳網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造孫吳網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供孫吳網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
前言
需要使用以下jar包
Maven項(xiàng)目引用以下配置:
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>2.6.2</version> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.0.1</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.26</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.26</version> <scope>test</scope> </dependency>
代碼
package Main;
import java.io.IOException;
import java.util.LinkedHashSet;
import java.util.Set;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPoolConfig;
@SuppressWarnings("all")
public class RedisMain {
public static void main(String[] args) {
JedisCluster cluster =null;
try {
Set<HostAndPort> nodes = new LinkedHashSet<HostAndPort>();
//一般選用slaveof從IP+端口進(jìn)行增刪改查,不用master
nodes.add(new HostAndPort("外網(wǎng)IP", 7003));
nodes.add(new HostAndPort("外網(wǎng)", 7004));
nodes.add(new HostAndPort("外網(wǎng)IP", 7004));
// Jedis連接池配置
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
// 最大空閑連接數(shù), 默認(rèn)8個(gè)
jedisPoolConfig.setMaxIdle(100);
// 最大連接數(shù), 默認(rèn)8個(gè)
jedisPoolConfig.setMaxTotal(500);
//最小空閑連接數(shù), 默認(rèn)0
jedisPoolConfig.setMinIdle(0);
// 獲取連接時(shí)的最大等待毫秒數(shù)(如果設(shè)置為阻塞時(shí)BlockWhenExhausted),如果超時(shí)就拋異常, 小于零:阻塞不確定的時(shí)間, 默認(rèn)-1
jedisPoolConfig.setMaxWaitMillis(2000); // 設(shè)置2秒
//對(duì)拿到的connection進(jìn)行validateObject校驗(yàn)
jedisPoolConfig.setTestOnBorrow(true);
//未設(shè)置auth Password
JedisCluster jedis = new JedisCluster(nodes, jedisPoolConfig);
//設(shè)置auth Password
//JedisCluster jedis = new JedisCluster(nodes,5000,3000,10,{auth_password}, new JedisPoolConfig());
System.out.println(jedis.get("mykey"));
}catch(Exception e) {
e.printStackTrace();
}finally {
if(null !=cluster)
cluster.close();
}
}
}可能出現(xiàn)的異常
1、DENIED Redis is running in protected mode because protected mode is enabled...
解決方法:redis.conf默認(rèn)禁止外網(wǎng)訪問,修改”protected-mode yes”為“protected-mode no”
2、No more cluster attempts left.
解決方法:redis設(shè)置集群時(shí),服務(wù)器沒有配置開啟集群總線端口(redis端口+10000),如果redis-cli端口有7000-7005,則集群總線端口為17000-17005,服務(wù)器7000-70005、17000-17005端口都要打開
3、No reachable node in cluster
解決方法:查看redis.conf 的 "bind xxxxxxx" 是否限制了IP訪問,注銷bind則可以任意IP訪問服務(wù)器Redis
關(guān)于如何在Java項(xiàng)目中調(diào)用Redis集群就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
網(wǎng)站名稱:如何在Java項(xiàng)目中調(diào)用Redis集群
轉(zhuǎn)載來源:http://chinadenli.net/article34/goedse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、全網(wǎng)營銷推廣、網(wǎng)站改版、品牌網(wǎng)站制作、網(wǎng)站維護(hù)、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)