Redis概念
1,Redis ---->”基于键值型”的”单线程”的”NoSql”数据库(以”键值对”存储,无约束)
Redis命令
String类型:值为字符串
Hash类型:值为哈希表
List类型:值为一个双向链表
Set类型:值为一个无序不重复集合
SortedSet类型:值为一个有序不重复集合
Redis的JAVA客户端
相比于jedis中的方法就是原来的redis命令一致,SpringDatarmRedis提供了统一的控制方式redisTemplate工具类
对于Redis数据的序列化主要有两种,可选择使用,下面只展示了第二种的方法
接Springboot整合Redis操作数据库快速入门:
1.首先创建好Springboot项目
2.引入依赖
<!--redis依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--common-pool-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<!--Jackson依赖-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
3.配置Redis连接参数
spring.redis.host = 192.168.136.132
spring.redis.port = 6379
spring.redis.password = ******(没密码的可以不填)
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-idle=8
spring.redis.lettuce.pool.min-idle=0
spring.redis.lettuce.pool.max-wait=100ms
4.运行类
package com.example.redisdatademo;
import com.example.redisdatademo.redis.pojo.User;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.StringRedisTemplate;
import javax.annotation.Resource;
@SpringBootTest
class RedisDataDemoApplicationTests {
//依赖注入
@Resource
//StringRedisTemplate使用的是StringRedisSerializer,返回一个Object
private StringRedisTemplate stringRedisTemplate;
//测试普通数据
@Test
void contextLoads() {
//写入String类型数据
stringRedisTemplate.opsForValue().set("name","TestData01");
//获取String类型数据
Object object = stringRedisTemplate.opsForValue().get("name");
System.out.println(object);
}
@Test
void testhash(){
//写入哈希数据
stringRedisTemplate.opsForHash().put("user:400","name","zzl大王");
stringRedisTemplate.opsForHash().put("user:400","age","400");
//读取哈希数据
//获取指定hash数据
Object name = stringRedisTemplate.opsForHash().get("user:400", "name");
System.out.println("name = " + name);
//获取所有的hash
Map<Object, Object> entries =
stringRedisTemplate.opsForHash().entries("user:400");
System.out.println("entries = " + entries);
}
//手动序列化mapper
private static final ObjectMapper mapper= new ObjectMapper();
//使用Object对象进行操作
@Test
void testUser() throws JsonProcessingException {
//创建对象
User user= new User("虎哥01",100);
//手动序列化对象数据
String json = mapper.writeValueAsString(user);
//写入数据
stringRedisTemplate.opsForValue().set("user:200",json);
//读取数据
String jsonUser= stringRedisTemplate.opsForValue().get("user:200");
//反手动序列化
User user1 = mapper.readValue(jsonUser, User.class);
System.out.println("user1 = " + user1);
}
}