*福音*阿里雲redis5.0.*集羣搭建及java代碼測試詳細(終於不用ruby了)

redis 5.0版本 集羣搭建不需要我們安裝ruby就可以搭建成功,並且redis給我們提供了快速搭建腳本,執行utils/create-cluster/ 目錄下的create-cluster腳本 就可以快速搭建,該腳本提供以下幾個命令供我們使用

1、下載安裝redis

$ wget http://download.redis.io/releases/redis-5.0.5.tar.gz
$ tar xzf redis-5.0.5.tar.gz
$ cd redis-5.0.5
$ make 
$ make install

2、端口開啓,需要開啓7001-7006和17001-17006(具體情況看你自己需要開啓哪些,圖片中的不想相干端口開不開都行)這一步先做也行後做也可以,反正都要開,不如早點開了
在這裏插入圖片描述
在這裏插入圖片描述
3、腳本修改
要想外部服務器訪問到我們搭建的集羣,我們需要對腳本修改一下:

在這裏插入圖片描述
start部分增加如下配置

–bind 指定我們要綁定的ip(服務器ip) --requirepass 指定我們的密碼 --protected-mode no 關閉安全模式(外部應用可以連接到redis)
在這裏插入圖片描述
create 部分 修改如下:
在這裏插入圖片描述
stop 部分 修改如下:
在這裏插入圖片描述
修改後保存

然後在utils/create-cluster目錄下執行./create-cluster start
並用 ps -ef|grep redis查看redis集羣是否啓動成功,如圖所示就啓動好了
在這裏插入圖片描述
然後執行 ./create-cluster create,出現以下界面就證明集羣基本部署成功了(主要是主備分配,分槽等操作完成,個人理解就是這個操作替換了低版本的ruby手動分槽什麼的),記住輸入“yes”,不要輸入“y”
在這裏插入圖片描述
任意取一個節點測試:這樣則證明集羣部署完成
在這裏插入圖片描述
如果還不放心可以使用 cluster nodes 和 cluster info 查看集羣信息,可以看到主備已經分好,狀態也是 “ok”,那就集羣肯定沒問題
在這裏插入圖片描述
在這裏插入圖片描述

使用RedisDesktopManager工具測試連接(這個工具很垃圾,點多了或者什麼的就卡死,沒辦法,誰讓他免費呢,改天自己寫一個…)
在這裏插入圖片描述
工具可以連接上證明代碼也可以連接,但是這塊卡了我好久,本來只是想寫一個測試類,測一下連接,但是從網上找的代碼都是那一套,把所有端口都加進去,但是一直爆“redis Could not get a resource from the pool”或者其他問題,然後我就按着網上的解決辦法改啊改,好幾天沒進展(單機版可以ping通,但是set不進去值,也get不到值)
最後好奇的改了一下代碼,代碼如下:

public static void main(String[] args) {
        GenericObjectPoolConfig config = new GenericObjectPoolConfig();
        // 最大連接數
        config.setMaxTotal(8);
        // 最大空閒數
        config.setMaxIdle(100);
        // 最大允許等待時間,如果超過這個時間還未獲取到連接,則會報JedisException異常:
        // Could not get a resource from the pool
        config.setMaxWaitMillis(7000);
        HostAndPort hostAndPort1 = new HostAndPort("**.**.**.***", 7001);
//        HostAndPort hostAndPort2 = new HostAndPort("**.**.**.***", 7002);
//        HostAndPort hostAndPort3 = new HostAndPort("**.**.**.***", 7003);
//        HostAndPort hostAndPort4 = new HostAndPort("**.**.**.***", 7004);
//        HostAndPort hostAndPort5 = new HostAndPort("**.**.**.***", 7005);
//        HostAndPort hostAndPort6 = new HostAndPort("**.**.**.***", 7006);
        Set<HostAndPort> hostAndPortSet = new HashSet<>();
        hostAndPortSet.add(hostAndPort1);
//        hostAndPortSet.add(hostAndPort2);
//        hostAndPortSet.add(hostAndPort3);
//        hostAndPortSet.add(hostAndPort4);
//        hostAndPortSet.add(hostAndPort5);
//        hostAndPortSet.add(hostAndPort6);
        JedisCluster jedis = new JedisCluster(hostAndPortSet,1000,30,3,"madong123",config);
        jedis.setnx("test2", "000000");
        System.out.println(jedis.get("000000"));
        try {
            jedis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

結果:
在這裏插入圖片描述
到此,懂得人都明白,redis集羣部署和應用算是告一段落

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章