一 Jedis连接redis数据库
maven仓库
使用jedis连接redis,jedis是原生的AIP
1.1新建maven项目
.............
1.2导入jedis的maven依赖
去maven仓库仓库搜索jedis,复制最新的坐标
![](https://img.haomeiwen.com/i28315931/8c991a83e414bf30.png)
在pom文件中添加依赖,刷新maven
![](https://img.haomeiwen.com/i28315931/a0174d18b7dca8bd.png)
1.3编码测试
- 连接数据库
- 操作命令
- 断开连接
测试连接(最后输出PONG说明连接成功)
image.png
测试一些简单的基本命令
操作成功,在redis中的所有命令,在Java程序中都可以用jedis点出来。
![](https://img.haomeiwen.com/i28315931/8dcf8d63421ad30c.png)
二 SpringBoot 集成redis
说明:在SpringBoot 2.x之后,原来的Jedis被替换成了lettuce;
jedis : 采用的是直连 , 多个线程操作的话 , 是不安全的 ,如果想要避免不安全的 , 使用jedis pool连接池 ! 更像BIO
lettuce : 采用netty , 实例可以再多个线程中进行共享 , 不存在线程不安全的情况 ! 可以减少线程数量 , 更像NIO模式
BIO NIO详细介绍
2.1新建SpringBoot项目
........................
2.2导入依赖
<!-- redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2.3添加配置文件
我一般是将配置文件改为yml格式![](https://img.haomeiwen.com/i28315931/df2cdc3ce79f7c19.png)
spring:
redis:
host: 127.0.0.1
port: 6379
database: 1
2.3测试连接
测试成功!!!
redisTemplate.opsForValue()
:String字符串类型
redisTemplate.opsForList()
List列表类型
redisTemplate.opsForSet()
Set集合类型
redisTemplate.opsForZSet()
Zet有序集合类型
redisTemplate.opsForHash()
Hash哈希类型
他们都可以通过点,直接点出对应的所有命令
![](https://img.haomeiwen.com/i28315931/f069a49d91c810a2.png)
2.4自定义RedisTemplate
将此作为一个配置文件添加
@Configuration
public class RedisConfiguration {
/*
* 将数据序列化
* 因为redis支持的数据类型很少
* */
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){
// 将template 泛型设置为 <String, Object>
RedisTemplate<String, Object> template = new RedisTemplate();
// 连接工厂,不必修改
template.setConnectionFactory(redisConnectionFactory);
/*
* 序列化设置
*/
// key、hash的key 采用 String序列化方式
template.setKeySerializer(RedisSerializer.string());
template.setHashKeySerializer(RedisSerializer.string());
// value、hash的value 采用 Jackson 序列化方式
template.setValueSerializer(RedisSerializer.json());
template.setHashValueSerializer(RedisSerializer.json());
template.afterPropertiesSet();
return template;
}
}
插入一个错误
添加了redis的配置类(解决序列化问题)后,就开始报这个错(无法自动装配。找不到 'RedisConnectionFactory' 类型的 Bean。 ),然后原本可以正常连接redis数据库的程序就跑不起了。
image.png
报错:redisTemplate无法自动装配
image.png
网上的解决办法:1.更换redis版本,版本不兼容会导致这个问题;
2.添加jedis依赖(不过我感觉这个办法没用,因为在SpringBoot 2.x之后,原来的Jedis被替换成了lettuce)
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.3.0</version>
</dependency>
我的解决办法:添加web依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
执行测试
![](https://img.haomeiwen.com/i28315931/4429a072375796a0.png)
![](https://img.haomeiwen.com/i28315931/dac32d3561b3e296.png)
网友评论