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"));
        }
    测试代码
  • 相关阅读:
    RTP 时间戳的处理
    Linux下printf输出字体的特效
    C# 获取空闲端口及查看已用端口
    Linux C :遍历输出指定目录下的所有文件
    RTP视频传输播放延时(时间戳)
    Linux 写SD卡时数据异常
    WIN7 C# System.Runtime.InteropServices.COMException VLC HRESULT:0x80040154 (REGDB_E_CLASSNOTREG)
    oracle分布式处理时报“ORA02041: 客户数据库未开始一个事务处理”解决办法 z
    js文件封装javascript在html中获取url参数
    Windows 7 和Windows 2008R2中的IIS7.5 z
  • 原文地址:https://www.cnblogs.com/zqr99/p/8099978.html
Copyright © 2011-2022 走看看