Redis下载地址https://github.com/microsoftarchive/redis/releases
下载完安装包“Redis-x64-3.2.100.zip”解压到自定义目录即可,不需要进行额外的配置
在解压目录下有多个目录文件,其中有两个重要的可执行文件
redis-server.exe 用于开启Redis服务(双击即可)默认端口号为6379
redis-cli.exe 用于开启客户端工具(也可以用可视化客户端工具Redis Desktop Manager,直接官网redisdesktop官网下载并安装,然后连接redis即可)
配置可视化工具方便查看数据
有了redis环境后,就可以在项目中整合redis了
1、在项目pom.xml中添加Redis的依赖启动器(SpringBoot为Redis实现了自动配置,统一管理版本号信息而不需要自己手动配置)
org.springframework.boot
spring-boot-starter-data-redis
2、编写实体类
import org.springframework.data.redis.core.index.Indexed;
public class Address {
@Indexed //标识对应属性在Redis数据库中生成二级索引
private String city;
@Indexed
private String country;
public Address() {
}
public Address(String city, String country) {
this.city = city;
this.country = country;
}
// 省略gettet和setter方法
// 省略toString方法
}
import org.springframework.data.redis.core.index.Indexed;
public class Family {
@Indexed
private String type;
@Indexed
private String username;
public Family() {
}
public Family(String type, String username) {
this.type = type;
this.username = username;
}
// 省略gettet和setter方法
// 省略toString方法
}
import org.springframework.data.annotation.Id;
import org.springframework.data.redis.core.RedisHash;
import org.springframework.data.redis.core.index.Indexed;
import java.util.List;
@RedisHash("persons")// 指定操作实体类对象在Redis数据库中的存储空间
public class persons {
@Id // 标识实体类主键
private String id;
@Indexed //标识对应属性在Redis数据库中生成二级索引
private String firstname;
@Indexed
private String lastname;
private Address address;
private List familyList;
public persons() {
}
public persons(String firstname, String lastname) {
this.firstname = firstname;
this.lastname = lastname;
}
// 省略gettet和setter方法
// 省略toString方法
}
Redis几个主要注解说明
@RedisHash("persons"): 指定操作实体类对象在Redis数据库中的存储空间。表示针对persons实体类的数据操作都存储在Redis数据库中名为persons的存储空间下
@Id :标识实体类主键。在Redis数据库中会默认生成字符串形式的HashKey表示唯一的实体对象id
@Indexed :标识对应属性在Redis数据库中生成二级索引。使用该注解后会在Redis数据库中生成属性对应的二级索引,索引名称就是属性名,可以方便地进行数据条件查询。
3、编写Repository接口,在src/main/java/com/chen下新建repository包,在该包下新建PersonRepository
import com.chen.redisDomain.persons;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.repository.CrudRepository;
import java.util.List;
public interface PersonRepository extends CrudRepository {
List findByLastName(String lastname);
Page findPersonByLastName(String lastname, Pageable page);
List findByFirstNameAndLastName(String firstname, String lastname);
List findByAddress_City(String city);
List findByFamilyList_Username(String username);
}
4、在application.properties全局配置文件下配置Redis数据库
#配置Redis服务器
#redis服务器地址
spring.redis.host=127.0.0.1
#redis服务器连接端口
spring.redis.port=6379
#redis服务器连接密码(默认为空)
spring.redis.password=
5、编写测试类
import com.chen.redisDomain.Address;
import com.chen.redisDomain.Family;
import com.chen.redisDomain.persons;
import com.chen.repository.PersonRepository;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.ArrayList;
@RunWith(SpringRunner.class)
@SpringBootTest
public class RedisTest {
@Autowired
private PersonRepository personRepository;
@Test
public void savePerson(){
persons person = new persons("吴","有才");
persons person1 = new persons("James","Harden");
Address address = new Address("北京","USA");
person.setAddress(address);
ArrayList list = new ArrayList<>();
Family dad = new Family("儿子", "张良");
Family mom = new Family("母亲", "李香君");
list.add(dad);
list.add(mom);
person.setFamilyList(list);
persons save = personRepository.save(person);
persons save1 = personRepository.save(person1);
System.out.println(save);
System.out.println(save1);
}
}
6、运行测试类
打开Redis Desktop Maneger 查看Redis数据
项目结构图