如何在Java項(xiàng)目中調(diào)用Redis集群

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

創(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秒
        //對拿到的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)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

網(wǎng)站名稱:如何在Java項(xiàng)目中調(diào)用Redis集群
轉(zhuǎn)載來源:http://bm7419.com/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)請盡快告知,我們將會在第一時(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)

h5響應(yīng)式網(wǎng)站建設(shè)