【Spring RedisTemplate 的底层一开始使用Jedis、但是自从SpringBoot2开始,底层开始使用了Lettuce,故不算在内】
【题外话:如果要使用Spring来集成对Redis的操作,千万记得要引入spring-boot-starter-data-redis,而非spring-boot-starter-redis,切记!切记!切记!!!】
在代码层面操作Redis的客户端最主要有以下3种:【其实有11种之多】
https://redis.io/resources/clients/#java
1.Jedis
官网:???【很抱歉,没官网,只有GitHub上的一句话介绍】
git地址:https://github.com/redis/jedis
Jedis api 在线网址:http://tool.oschina.net/uploads/apidocs/redis/clients/jedis/Jedis.html
即:Jedis是为Redis设计的一个Java客户端,旨在提高性能和易用性。
2.Lettuce
官网:https://lettuce.io/
git地址:https://github.com/lettuce-io/lettuce-core
Lettuce是一个可扩展的Redis客户端,用于构建非阻塞响应式应用程序。【构建弹性数据访问 -->> 说愿景也罢,目标也罢,不得不说,官网的风格 >> 很Spring】
3. Redisson
官网:https://redisson.org/
git地址:https://github.com/redisson/redisson
你会有个惊喜,什么?Redisson居然有中文的介绍……
小总结:
1. 想简单方便,直接使用spring-boot-starter-data-redis(内部默认导入Lettuce依赖包),能够平滑的实现从Jedis底层迁移到性能更好的Lettuce,原程序几乎不用改。
2. 如果你想要实现分布锁,使用Redisson,几乎类比JUC,例如什么CountDownLatch、ReentrantLock、ReadWriteLock、Semaphore,Redisson都有对应的实现,甚至还支持连锁、红锁等,在锁方面,几乎做到了极致……