[Reprint] Java client Jedis using Redis

Source: Internet
Author: User
Tags connection pooling

Reprinted from http://aofengblog.blog.163.com/blog/static/631702120147298317919/

In real-world project development, various languages are using Redis's client libraries to interact with Redis. For the Java language, Redis officially recommends Jedis.

Jedis provides a variety of operating methods: single-connection mode, stand-alone connection pool mode, multi-machine distributed + connection pool mode.

Prepare

jedis-2.5.2
Commons-pool2-2.2.jar

Using a single connection

This method is recommended only for the development environment to be used as a tuning trial.

// 创建连接
String host = "192.168.56.102";int port = 6379;Jedis client = new Jedis(host, port);
// 执行set指令String result = client.set("key-string", "Hello, Redis!");System.out.println( String.format("set指令执行结果:%s", result) );
// 执行get指令String value = client.get("key-string");System.out.println( String.format("get指令执行结果:%s", value) );

Run the above code, console output:

Set command execution result:OK
Get Command execution result:Hello, Redis!

Using connection pooling

This works for scenarios that use only a single Redis instance.

// 生成连接池配置信息JedisPoolConfig config = new JedisPoolConfig();config.setMaxIdle(10);config.setMaxTotal(30);config.setMaxWaitMillis(3*1000);// 在应用初始化的时候生成连接池JedisPool pool = new JedisPool(config, "192.168.56.102", 6379);// 在业务操作时,从连接池获取连接Jedis client = pool.getResource();try {    // 执行指令    String result = client.set("key-string", "Hello, Redis!");    System.out.println( String.format("set指令执行结果:%s", result) );    String value = client.get("key-string");    System.out.println( String.format("get指令执行结果:%s", value) );} catch (Exception e) {    // TODO: handle exception} finally {    // 业务操作完成,将连接返回给连接池    if (null != client) {        pool.returnResource(client);    }} // end of try block// 应用关闭时,释放连接池资源pool.destroy();

Run the above code, console output:

Set command execution result:OK
Get Command execution result:Hello, Redis!

Using connection pooling + distributed

In larger systems, there are often multiple Redis instances for load balancing. It also implements a master-slave backup that, when the primary instance fails, switches to service from the instance.
Similar to the memcached client, Jedis also provides a way for client-side distributed operations, using a consistent hashing algorithm.

// 生成多机连接信息列表List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();shards.add( new JedisShardInfo("127.0.0.1", 6379) );shards.add( new JedisShardInfo("192.168.56.102", 6379) );// 生成连接池配置信息JedisPoolConfig config = new JedisPoolConfig();config.setMaxIdle(10);config.setMaxTotal(30);config.setMaxWaitMillis(3*1000);// 在应用初始化的时候生成连接池ShardedJedisPool pool = new ShardedJedisPool(config, shards);// 在业务操作时,从连接池获取连接ShardedJedis client = pool.getResource();try {    // 执行指令    String result = client.set("key-string", "Hello, Redis!");    System.out.println( String.format("set指令执行结果:%s", result) );    String value = client.get("key-string");    System.out.println( String.format("get指令执行结果:%s", value) );} catch (Exception e) {    // TODO: handle exception} finally {    // 业务操作完成,将连接返回给连接池    if (null != client) {        pool.returnResource(client);    }} // end of try block// 应用关闭时,释放连接池资源pool.destroy();

Run the above code, console output:

Set command execution result:OK
Get Command execution result:Hello, Redis!

[Reprint] Java client Jedis using Redis

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.