Redis安装配置连接
-
Redis下载地址
Git的项目 下载zip即可 解压即用 -
在解压后的文件夹下双击redis-server.exe,即可看到Redis服务正常启动
-
下载Redis Desktop Manager——Redis客户端可视化管理工具
参考该博客进行连接配置
Redis简介
Redis是一个开源的、内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件,并提供多种语言的API。
Redis 是完全开源的,遵守BSD协议,是一个高性能的key-value数据库。
- 特点和优点:
- 非关系型数据库——为key-value键值存储系统
- 存取速度快
- 支持丰富的数据类型:列表、集合、排序集、散列
- 提供多重功能:可用作非关系型数据库、缓存中间件、消息中间件等
- 操作具有原子性
可参考菜鸟教程加深印象
使用SpringBoot整合Redis
- 新建IDEA项目 添加NoSql中的Spring data redis依赖
- 或者添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
#Redis服务器地址
spring.redis.host=127.0.0.1
#Redis服务器连接端口
spring.redis.port=6379
#Redis服务器连接密码(默认为空)
spring.redis.password=
@RedisHash("persons") //指定操作实体类对象在Redis数据库中的存储空间
public class Person {
@Id //标识实体类主键
private String id;
@Indexed //标识对应属性在Redis数据库中生成二级索引
private String firstname;
@Indexed
private String lastname;
private Address address;
private List<Family> familyList;
...省略 set get toString 有参数和无参数构造方法
}
public class Family {
@Indexed
private String type;
@Indexed
private String username;
...省略 set get toString 有参数和无参数构造方法
}
public class Address {
@Indexed
private String city;
@Indexed
private String country;
...省略 set get toString 有参数和无参数构造方法
}
- 注解简介
@RedisHash(“persons”) | 用于指定操作实体类对象在Redis数据库中的存储空间,表示针对Person实体类的数据都存储在Redis数据库中名为persons的存储空间 |
---|---|
@Id | 用于表示实体类主键。在Redis数据库中会默认生成字符串形式的HashKey表示唯一的实体对象id,当然也可以在数据存储时手动指定id |
@Indexed | 用于表示对应属性在Redis数据库中生成二级索引 |
public interface PersonRepository extends CrudRepository<Person,String> {
List<Person> findByLastname(String lastname);
Page<Person> findPersonByLastname(String lastname, Pageable pageable);
List<Person> findByFirstnameAndLastname(String firstname, String lastname);
List<Person> findByAddress_City(String city);
List<Person> findByFamilyList_Username(String username);
}
@RunWith(SpringRunner.class)
@SpringBootTest
class Redischapter03ApplicationTests {
@Autowired
private PersonRepository repository;
@Test
public void savePerson() {
Person person = new Person("张","有才");
Person person1 = new Person("James","Harden");
//添加住址信息
Address address = new Address("北京","china");
person.setAddress(address);
//创建并添加家庭成员
List<Family> list = new ArrayList<>();
Family dad = new Family("父亲","张三");
Family mom = new Family("母亲","李四");
list.add(dad);
list.add(mom);
person.setFamilyList(list);
// 向Redis数据库添加数据
Person save = repository.save(person);
Person save1 = repository.save(person1);
System.out.println(save);
System.out.println(save1);
}
@Test
public void selectPerson(){
List<Person> list = repository.findByAddress_City("北京");
System.out.println(list);
}
@Test
public void updatePerson(){
Person person = repository.findByFirstnameAndLastname("张","有才").get(0);
person.setLastname("小明");
Person update = repository.save(person);
System.out.println(update);
}
@Test
public void deletePerson(){
Person person = repository.findByFirstnameAndLastname("张","小明").get(0);
repository.delete(person);
}
}