参考视频: 快速上手Spring Boot整合Redis
一、前言
Redis 和 mongodb 是非关系型数据库的两个主要产品。随着互联网的快速发展和业务量的激增,传统的关系型数据库已经无法应对结构复杂以及规模很大的数据访问了,未来提高速度,我们采用非关系型数据库(结构灵活,访问快)。
Redis基于内存进行存储,是支持key-value的数据字典,底层使用c语言编写,没有数据表的概念,支持5种数据类型
- 字符串
- 列表
- 集合
- 有序集合
- 哈希
二、springboot+redis
一、在pom.xml中引入依赖
<!-- redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- end of redis -->
二、创建实体类(之后用Redis存储实体),记得序列化,才能够存入redis
public class Student implements Serializable { int id; String name; public Student() {} public Student(int id, String name) { this.id = id; this.name = name; } @Override public String toString() { return "Student{" + "id=" + id + ", name='" + name + '\'' + '}'; } }
三、编写配置
spring: redis: host: 127.0.0.1 port: 6379 timeout: 5000 database: 0
四、编写测试类
@SpringBootTest @TestMethodOrder(MethodOrderer.OrderAnnotation.class) public class SwaggerUseApplicationTests { @Autowired RedisTemplate redisTemplate; @Test public void contextLoads(){} // 可用来检测springboot环境 @Test @Order(1) public void testSet(){ Student student = new Student(1,"xsy"); redisTemplate.opsForValue().set("student",student); } @Test @Order(2) public void testGet(){ String key = "student"; Student student = (Student) redisTemplate.opsForValue().get(key); System.out.println(student); } @Test @Order(3) public void testDel(){ String key = "student"; boolean success = redisTemplate.delete(key); TestCase.assertTrue(success); } }
五、只运行testSet测试,可以用Redis Desktop Manager查看redis(可以看到新加入的键–student前面被redis加上了一些记号),也可以通过keys *student命令在redis-cli中查看
六、在程序中通过键获取值
@Test public void testGet(){ String key = "student"; Student student = (Student) redisTemplate.opsForValue().get(key); System.out.println(student); }
结果为:Student{id=1, name='xsy'}