目录
Redis的客户端介绍
Jedis
Jedis连接池
Springboot下的整合
SpringDataRedis
1.导入依赖
2.配置文件
3.编写测试
注意:用以上方法存储的 对象 数据会默认序列化为字节形式,存在以下缺点
解决办法:
方案一:自定义RedisTemplate的序列化方式
方案二:采用StringRedisTemplate
我的例子(对于JSON的转换,我采用了FastJson):
1.导入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
2.编写配置文件
spring:
redis:
host: \\自定义
port: \\自定义
password: \\自定义
lettuce:
pool:
max-active: 8
max-idle: 8
min-idle: 0
max-wait: 100
3.编写类:
@Data
public class User {
private String name;
private Integer age;
public User(String name, Integer age) {
this.name = name;
this.age = age;
}
}
4.测试
@SpringBootTest
class DemoApplicationTests {
@Autowired
private StringRedisTemplate redisTemplate;
@Test
public void testString(){
redisTemplate.opsForValue().set("Name","zhangsan");
Object name = redisTemplate.opsForValue().get("Name");
System.out.println("name="+name);
}
@Test
public void testUser(){
//创建对象
User user = new User("zhangsan",18);
String jsonString = JSON.toJSONString(user);
redisTemplate.opsForValue().set("user:1",jsonString);
String s = redisTemplate.opsForValue().get("user:1");
User user1 = JSON.parseObject(s, User.class);
System.out.println(user1);
}
}
总结: