這篇文章給大家介紹如何在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)目引用以下配置:
org.apache.commons commons-pool2 2.6.2 redis.clients jedis 3.0.1 org.slf4j slf4j-api 1.7.26 org.slf4j slf4j-simple 1.7.26 test
代碼
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 { Setnodes = new LinkedHashSet (); //一般選用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ò),可以把它分享出去讓更多的人看到。