1.Jedis:
Redis官方推荐使用Jedis操作Redis,Jedis的方法和Redis的指令一一对应。
Jedis和lettuce都是可以操作redis的平台
使用时:
导包
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
创建工具类
public class JedisUtil {
private static final JedisPool jedisPool;
static {
//设置基本属性
GenericObjectPoolConfig<Jedis> poolConfig = new JedisPoolConfig();
//最大连接数
poolConfig.setMaxTotal(50);
//最大空闲数
poolConfig.setMaxIdle(10);
jedisPool = new JedisPool(poolConfig, "XXX", 6379, 2000, "XXX");
}
public static Jedis getJedis(){
return jedisPool.getResource();
}
}
测试使用:
/**
* 测试 使用封装的工具类来使用redis
*/
@Test
void test03(){
Jedis jedis = JedisUtil.getJedis();
jedis.lpush("lol","abc");
jedis.lpush("lol","def");
jedis.lpush("lol","ghj");
//弹出
System.out.println(jedis.lrange("lol", 0, -1));
}
因为Jedis采用的直连,多个线程操作是不安全的,如果想要避免,得使用jedis pool连接池 ,并且不支持异步
2.lettuce
Lettuce基于Netty的连接实例(StatefulRedisConnection),可以在多个线程间并发访问,且线程安全,满足多线程环境下的并发访问,同时它是可伸缩的设计,一个连接实例不够的情况也可以按需增加连接实例
依赖:
<dependency>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</dependency>
具体没咋用过
3.RedisTemplate
redistemplate是spring框架对jedis和lettuce的封装。让spring框架体系能够更加方便的接入redis的功能。
依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
这个依赖包中就包括了jedis 和 lettuce的依赖
基础使用:
先配置自定义RedisTemplate 因为底层默认JDK二进制序列化 不能跨平台使用
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> template = new RedisTempla