您当前的位置: 首页 >  redis

qq_34412985

暂无认证

  • 3浏览

    0关注

    1061博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

jedis操作redis

qq_34412985 发布时间:2019-01-31 21:14:51 ,浏览量:3

jedis介绍

         Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如java、C、C#、C++、php、Node.js、Go等。

         在官方网站里列一些Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推荐使用Jedis和Redisson。 在企业中用的最多的就是Jedis,下面我们就重点学习下Jedis。

Jedis同样也是托管在github上,地址:https://github.com/xetorthio/jedis

通过jedis连接redis单机 jar包

pom坐标:

  

          redis.clients

          jedis

          2.7.0

     

 

jar包如下:

单实例连接

通过创建单实例jedis对象连接redis服务,如下代码:

// 单实例连接redis

    @Test

    public void testJedisSingle() {

 

       Jedis jedis = new Jedis("192.168.101.3", 6379);

       jedis.set("name", "bar");

       String name = jedis.get("name");

       System.out.println(name);

       jedis.close();

 

    }

连接超时解决

由于linux防火墙默认开启,redis的服务端口6379并不在开放规则之内,所有需要将此端口开放访问或者关闭防火墙。

关闭防火墙命令:sevice iptables stop

如果是修改防火墙规则,可以修改:/etc/sysconfig/iptables文件

使用连接池连接

         通过单实例连接redis不能对redis连接进行共享,可以使用连接池对redis连接进行共享,提高资源利用率,使用jedisPool连接redis服务,如下代码:

 

    @Test

    public void pool() {

       JedisPoolConfig config = new JedisPoolConfig();

       //最大连接数

       config.setMaxTotal(30);

       //最大连接空闲数

       config.setMaxIdle(2);

      

       JedisPool pool = new JedisPool(config, "192.168.101.3", 6379);

       Jedis jedis = null;

 

       try  {

           jedis = pool.getResource();

          

           jedis.set("name", "lisi");

           String name = jedis.get("name");

           System.out.println(name);

       }catch(Exception ex){

           ex.printStackTrace();

       }finally{

           if(jedis != null){

              //关闭连接

              jedis.close();

           }

       }

      

    }

 

详细的连接池配置参数参考下节jedis和spring整合中applicationContext.xml的配置内容。

 

jedis与spring整合

配置spring配置文件applicationContext.xml

 

 

   

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

   

   

   

   

      

      

      

   

 

测试代码:

private ApplicationContext applicationContext;

 

    @Before

    public void init() {

       applicationContext = new ClassPathXmlApplicationContext(

              "classpath:applicationContext.xml");

    }

 

    @Test

    public void testJedisPool() {

    JedisPool pool = (JedisPool) applicationContext.getBean("jedisPool");

           try  {

           jedis = pool.getResource();

          

           jedis.set("name", "lisi");

           String name = jedis.get("name");

           System.out.println(name);

       }catch(Exception ex){

           ex.printStackTrace();

       }finally{

           if(jedis != null){

              //关闭连接

              jedis.close();

           }

       }

         }

 

关注
打赏
1653291990
查看更多评论
立即登录/注册

微信扫码登录

0.0535s