zoukankan      html  css  js  c++  java
  • 使用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"));
        }
    测试代码
  • 相关阅读:
    5分钟轻松应对 MySQL DBA 面试
    数据库优化总结
    13-Python与设计模式--责任链模式
    22-Python与设计模式--状态模式
    23-Python与设计模式--设计原则
    21-Python与设计模式--备忘录模式
    20-Python与设计模式--解释器模式
    19-Python与设计模式--观察者模式
    17-Python与设计模式--迭代器模式
    18-Python与设计模式--访问者模式
  • 原文地址:https://www.cnblogs.com/zqr99/p/8099978.html
Copyright © 2011-2022 走看看