一、Jedis
1、普通jedis
(1)引入依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.2.0</version>
</dependency>
(2)建立连接
private Jedis jedis;
@BeforeEach
void setUp() {
jedis = new Jedis("127.0.0.1", 6379);
// 密码
jedis.auth("123456");
//选择库
jedis.select(2);
}
(3) 测试
@Test
void jedisString() {
String set = jedis.set("name", "allen");
System.err.println(set);
String name = jedis.get("name");
System.err.println(name);
}
(4) 释放资源
@AfterEach
void tearDown() {
if (jedis != null) {
jedis.close();
}
}
2、jedis连接池
public class JedisConFactory {
private static JedisPool jedisPool = null;
static {
//配置连接池
JedisPoolConfig poolConfig = new JedisPoolConfig();
//设置最大连接数
poolConfig.setMaxTotal(8);
//设置最大空闲数
poolConfig.setMaxIdle(8);
//设置最小空闲数
poolConfig.setMinIdle(0);
jedisPool = new JedisPool(poolConfig,"127.0.0.1",6379);
}
public static Jedis getJedis(){
return jedisPool.getResource();
}
}
二、 SpirngDataReids
1、特点
- 提供了对不同Redis客户端的整合(Lettuce和Jedis,默认Lettuce)
- 提供了RedisTemplate统一API来操作Redis
- 支持Redis的发布订阅模型
- 支持Redis哨兵和Redis集群
- 支持基于Lettuce的响应式编程
- 支持基于JDK、JSON、字符串、Spring对象的数据序列化和反序列化
- 支持基于Redis的JDKCollection实现
2、快速入门
(1) 引入依赖
<!-- spring boot redis缓存引入 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- lecttuce 缓存连接池-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
(2) 添加application.yaml配置
spring:
redis:
host: 120.79.157.129
port: 6379
database: 2
# password: #默认为空
lettuce:
pool:
max-active: 20 #最大连接数,负值表示没有限制,默认8
max-wait: -1 #最大阻塞等待时间,负值表示没限制,默认-1
max-idle: 8 #最大空闲连接,默认8
min-idle: 0 #最小空闲连接,默认0
(3) 测试
@Configuration
public class RedisConfig {
@Autowired
private RedisTemplate redisTemplate;
//有则取出key值所对应的值
redisTemplate.opsForValue().get(key)
}
3、序列化问题
RedisTemplate可以接收任意Object作为值写入Redis,只不过写前会把Object写成字节形式,默认是JDK序列化,得到的结果如下:
解决办法(两种):
(1)自定义RedisTemplate序列化方式
实现效果:
(2)StringRedisTemplate
为了节省内存空间,统一使用String序列化器,要求只能存储String类型的key和value。当存储java对象时,手动完成序列化。
三、Redission
分布式 待。。。