Redis集群之Jedis的使用


maven依賴

<!-- Redis客戶端 -->
            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>2.7.2</version>
            </dependency>

 

集群:

純java模式:

public void testJedisCluster()throws Exception {
        // 第一步:使用JedisCluster對象。需要一個Set<HostAndPort>參數。Redis節點的列表。
        Set<HostAndPort> nodes = new HashSet<>();//set無序但不重復
        nodes.add(new HostAndPort("192.168.25.128",7001));
        nodes.add(new HostAndPort("192.168.25.128",7002));
        nodes.add(new HostAndPort("192.168.25.128",7003));
        nodes.add(new HostAndPort("192.168.25.128",7004));
        nodes.add(new HostAndPort("192.168.25.128",7005));
        nodes.add(new HostAndPort("192.168.25.128",7006));
        JedisCluster jedisCluster = new JedisCluster(nodes);
        // 第二步:直接使用JedisCluster對象操作redis。在系統中單例存在。
        jedisCluster.set("hello", "100");
        String result = jedisCluster.get("hello");
        // 第三步:打印結果
        System.out.println(result);
        // 第四步:系統關閉前,關閉JedisCluster對象。
        jedisCluster.close();
    }    

  1.創建nodes節點存儲連接方式,nodesnodes是包含

   HostAndPort對象的set集合

  2.創建JedisCluster 的集群對象。

  JedisCluster jedisCluster = new JedisCluster(nodes);

 3.進行redis的相關操作
4.關閉連接
集群的xml配置版:
<bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">
        <constructor-arg name="nodes">
            <set>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.25.128"></constructor-arg>
                    <constructor-arg name="port" value="7001"></constructor-arg>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.25.128"></constructor-arg>
                    <constructor-arg name="port" value="7002"></constructor-arg>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.25.128"></constructor-arg>
                    <constructor-arg name="port" value="7003"></constructor-arg>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.25.128"></constructor-arg>
                    <constructor-arg name="port" value="7004"></constructor-arg>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.25.128"></constructor-arg>
                    <constructor-arg name="port" value="7005"></constructor-arg>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.25.128"></constructor-arg>
                    <constructor-arg name="port" value="7006"></constructor-arg>
                </bean>
            </set>
        </constructor-arg>
    </bean>
    <bean id="jedisClientCluster" class="com.lamsey.jedis.JedisClientCluster">
        <property name="jedisCluster" ref="jedisCluster"/>            
    </bean>
 
        

 

對應的jedisCluster操作實現類JedisClientCluster
 
        
public class JedisClientCluster implements JedisClient{
    private JedisCluster jedisCluster;
    
    public JedisCluster getJedisCluster() {
        return jedisCluster;
    }

    public void setJedisCluster(JedisCluster jedisCluster) { this.jedisCluster = jedisCluster;//bean通過proprety對其進行賦值,從而建立jedisCluster的實例
 } @Override public String set(String key, String value) { return jedisCluster.set(key, value); } @Override public String get(String key) { return jedisCluster.get(key); }
...........
}
 
        

 



單機版:

    public  void testJedis() throws Exception {
        // 第一步:創建一個Jedis對象。需要指定服務端的ip及端口。
        Jedis jedis = new Jedis("192.168.25.128", 7001);
        // 第二步:使用Jedis對象操作數據庫,每個redis命令對應一個方法。
        jedis.set("hello", "12344");
        String result = jedis.get("hello");
        // 第三步:打印結果。
        System.out.println(result);
        // 第四步:關閉Jedis
        jedis.close();
    }

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM