springboot2 的redis连接池lettuce5

springboot2之前redis的连接池为jedis,2.0以后redis的连接池改为了lettuce,lettuce能够支持redis4,需要java8及以上。lettuce是基于netty实现的与redis进行同步和异步的通信,下面为lettuce与redis进行简单的同步与异步的通信的示例,版本为5.0.4

public static void main(String[] args) throws ExecutionException, InterruptedException {
        RedisURI redisURI1 = RedisURI.builder().withHost("127.0.0.1").withPort(6379).withPassword("00000000").build();

        RedisURI redisURI2 = RedisURI.Builder.redis("127.0.0.1").withPort(6379).withPassword("00000000").build();

//        RedisURI redisURI3 = new RedisURI("127.0.0.1", 6379, Duration.ofMillis(-1));

        RedisClient redisClient = RedisClient.create(redisURI1);

        StatefulRedisConnection connection = redisClient.connect();

        RedisCommands<String, String> commands = connection.sync();

        System.out.println(commands.get("name"));

        RedisAsyncCommands<String, String> asyncCommands = connection.async();
        RedisFuture<String> rs = asyncCommands.get("wk");

//        rs.thenAccept(System.out::println);


        while (!rs.isDone()){
            System.out.println(rs.get());
        }

        connection.close();
        redisClient.shutdown();
    }

  上面写了三种创建连接的方式,5以后版本API发生了改变,推荐使用builder模式来创建URI来连接redis。可以通过RedisURI.builder()来创建,也可以通过RedisURI.Builder.redis(),也可以直接通过new来创建,不过这种方式能够配置的参数较少,需要使用密码也比较麻烦。具体的API直接翻源码就可以了。
  然后通过sync()或者async()来获取同步或者异步操作连接,同步没什么,异步的通过future函数接口来接收结果,还提供RedisFuture来操作使用,上面注释的代码rs.thenAccept(System.out::println)与while循环内部代码效果相同,定义了具体的回调执行代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值