使用jedis客户端连接redis,单机版和集群版

单机版

1.入门实例

 @Test
    public void testJedis(){
        //创建一个jedis对象,需要指定服务的ip和端口号
        Jedis jedis=new Jedis("192.168.25.11",6379);
        //直接操作数据库
        jedis.set("str","nihao");
        //关闭
        jedis.close();
    }
存值
@Test
    public void testGetJedis(){
        //创建一个jedis对象,需要指定服务的ip和端口号
        Jedis jedis=new Jedis("192.168.25.11",6379);
        //直接操作数据库
        String str = jedis.get("str");
        System.out.println(str);
        //关闭
        jedis.close();
    }
取值
 <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
<jedis.version>2.7.2</jedis.version>
        </dependency>
pom依赖

这样使用的话,每次都需要创建连接和关闭连接,耗费性能,所以一般实际项目中我们一般会采用连接池的方式进行开发

2.使用数据库连接池的方式操作redis

    @Test
    public  void testJedisPool(){
        //创建连接池(单例),需要指定服务ip和端口号
        JedisPool pool=new JedisPool("192.168.25.11",6379);
        //从连接池中获得连接
        Jedis resource = pool.getResource();
        //使用Jedis操作数据库(方法级别使用)
        String str = resource.get("str");
        System.out.println(str);
        //一定要关闭Jedis连接
        resource.close();
        //系统关闭前关闭连接池
        pool.close();
    }
使用数据库连接池的方式操作redis

 

集群版

1.直接使用

  public void testRedisCluster() {
        //创建一个JedisCluster对象,构造参数Set类型,集合中每个元素 是一个HostAndPort类型
       Set<HostAndPort> nodes=new HashSet<>();
        nodes.add(new HostAndPort("192.168.25.11",7001));
        nodes.add(new HostAndPort("192.168.25.11",7002));
        nodes.add(new HostAndPort("192.168.25.11",7003));
        nodes.add(new HostAndPort("192.168.25.11",7004));
        nodes.add(new HostAndPort("192.168.25.11",7005));
        nodes.add(new HostAndPort("192.168.25.11",7006));

        JedisCluster jedisCluster=new JedisCluster(nodes);
        //直接使用JedisCluster操作redis,自带连接池,JedisCluster可以是单例的
        jedisCluster.set("nihao","你好");

        System.out.println(jedisCluster.get("nihao"));
        //系统关闭前,关闭JedisCluster.
        jedisCluster.close();
    }
连接redis集群

 

使用Spring整合redis集群

 <bean class="redis.clients.jedis.JedisCluster" id="jedisCluster">
        <constructor-arg name="nodes">
            <set>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.25.11"/>
                    <constructor-arg name="port" value="7001"/>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.25.11"/>
                    <constructor-arg name="port" value="7002"/>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.25.11"/>
                    <constructor-arg name="port" value="7003"/>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.25.11"/>
                    <constructor-arg name="port" value="7004"/>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.25.11"/>
                    <constructor-arg name="port" value="7005"/>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.25.11"/>
                    <constructor-arg name="port" value="7006"/>
                </bean>
            </set>
        </constructor-arg>
    </bean>
    <bean class="com.taotao.jedis.JedisClientCluster" id="jedisCluster"/>
Spring配置文件中配置集群信息和客户端
    private JedisCluster jedisCluster;
    @Before
    public  void testBefore(){
        ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("Spring/applicationContext-redis.xml");
        jedisCluster=classPathXmlApplicationContext.getBean(JedisCluster.class);
    }
    @Test
    public  void testJedisSping(){
        jedisCluster.set("11","11");
        System.out.println( jedisCluster.get("11"));
    }
测试代码

 

posted @ 2017-12-25 00:21  懒人写博客  阅读(1144)  评论(0编辑  收藏  举报