弹簧引导复述,如何实现客户端远程操作

  介绍

这篇文章主要讲解了弹簧引导复述,如何实现客户端远程操作,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

在春季启动1。x中默认是能作为客户端,但是在春天Boot2.x后,默认就是生菜

复述的远程连接,默认是不支持的,需要手动开启

修改配置文件:

注释掉困境:127.0.0.1

开启密码校验,去掉requireprass的注释

使用能客户端:

能的GitHub地址:https://github.com/xetorthio/jedis

如何远程连接:

//构造一个能对象   能能=新能(“127.0.0.1");//有密码的话要认证   jedis.auth (“root");//测试是否连接成功   字符串萍=jedis.ping ();//返回pong表示成功   System.out.println (ping);

能中的方法API和复述中的操作数据的命令一致,所以使用起来很方便。

在实际应用中,能实例一般用连接池获取,因为java本来就是多线程的,而能对象不是线程安全的,所以要使用连接池,从连接池中获取能,用完之后再还给连接池。保证他的线程是安全的。

如何创建能连接池

//1。构造一个能连接池   JedisPool池=new JedisPool (“127.0.0.1", 6379);//2 .从连接池中获取一个能连接   能能=pool.getResource ();//3 .测试是否连接成功   字符串萍=jedis.ping ();//返回pong表示成功   System.out.println(平);//4 .归还连接   jedis.close ();

如果第三步,也就是我们的业务代码出问题的话,是无法进行到第四步的,我们可以做一个优化,在业务代码块中尝试赶上给关闭加一个最后,并在最后中判断能不为空的情况下给他归还。这样的话,就可以保证每次都归还能对象了。

但是这种的明显感觉很臃肿,而且约束性不强,因此可以再优化,就是以接口和接口实现的形式去处理,需要调用的时候再去实现这个接口:

创建接口:

公共接口CallJedis {
  无效的调用(能能);
  }

创建接口的实现

公共类复述,{
  私人JedisPool池;
  公共复述(){
  GenericObjectPoolConfig配置=new GenericObjectPoolConfig ();//连接池最大空闲数
  config.setMaxIdle (300);//最大连接数
  config.setMaxTotal (1000);//连接最大等待时间,如果是1表示没有限制
  config.setMaxWaitMillis (30000);//在空闲时检查有效性
  config.setTestOnBorrow(真正的);/* *
  * 1。复述,地址
  * 2。复述,端口
  * 3。连接超时时间
  * 4。密码
  */池=new JedisPool(配置,“192.168.91.128", 6379, 30000,“root");
  }
  公共空间执行(CallJedis CallJedis) {
  试(能能=pool.getResource ()) {
  callJedis.call(能);
  }
  }
  }

调用接口:

新复述,复述,复述,=();
  复述。execute(能→{
  System.out.println (jedis.ping ());
  });

使用生菜客户端:

GitHub地址:https://github.com/lettuce-io/lettuce-core

生菜和能比较

能在实现过程中是直接连接复述的,在多个线程之间共享一个能实例,是线程不安全的,如果想在多线程场景下使用能,就得使用连接池,这样,每个线程都有自己的能实例,但是有一个弊端,就是会消耗过多的物理资源。

生菜是线程安全的,因为使用了网状的NIO框架构建。支持同步,异步,以及响应调用,多个线程可以共享一个生菜实例,不用担心多线程的并发问题。

在java中如何使用:

1。添加依赖。

2。测试

//创建连接根是密码,127.0.0.1是服务端地址   RedisClient RedisClient=RedisClient.create(“复述://root@127.0.0.1");//创建连接通道   String> StatefulRedisConnection<字符串;连接=redisClient.connect ();//获取同步调用对象   String> RedisCommands<字符串;同步=connect.sync ();//赋值   sync.set (“name",“zl");//取值   字符串名称=sync.get (“name");//测试   System.out.println(名称);   }

看完上述内容,是不是对弹簧引导复述,如何实现客户端远程操作有进一步的了解,如果还想学习更多内容,欢迎关注行业资讯频道。

弹簧引导复述,如何实现客户端远程操作