Redis 从入门到精通(十一):客户端与连接池 —— Jedis、Lettuce、Redisson 全面对比与调优 Redis 从入门到精通(十一):客户端与连接池 —— Jedis、Lettuce、Redisson 全面对比与调优一、三大客户端的定位与差异1.1 Jedis// Jedis 是最老牌的 Redis Java 客户端,API 和 Redis 命令一一对应Jedisjedis=newJedis("localhost",6379);jedis.set("key","value");Stringvalue=jedis.get("key");jedis.close();特点:同步阻塞:每个方法调用都是同步的线程不安全:单个 Jedis 实例不能在多线程间共享连接池:通过JedisPool管理连接API 直观:方法名和 Redis 命令一致,学习成本极低轻量:依赖少,启动快1.2 Lettuce// Lettuce 基于 Netty,天然异步 + 线程安全RedisClientclient=RedisClient.create("redis://localhost:6379");StatefulRedisConnectionString,Stringconnection=client.connect();RedisCommandsString,Stringcommands=connection.sync();commands.set("key","value");Stringvalue=commands.get("key");// 同一个 connection 可以在多线程间共享connection.close();client.shutdown();特点:基于 Netty:非阻塞 I/O,高性能线程安全:单个连接实例可在多线程间共享原生异步/响应式:支持AsyncCommands和ReactiveCommands连接自动管理:内置重连机制Spring Boot 2.x 默认客户端1.3 Redisson// Redisson 不是简单的 Redis 客户端,而是分布式对象框架Configconfig=newConfig();config.useSingleServer().setAddress("redis://localhost:6379");RedissonClientredisson=Redisson.create(config);// 分布式锁RLocklock=redisson.getLock("myLock");lock.lock();// 分布式 MapRMapString,Stringmap=redisson.getMap("myMap");map.put("key","value");// 分布式队列RQueueStringqueue=redisson.getQueue(