IDEA-SpringBoot整合Redis

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数据库中生成二级索引
  • 编写Repository接口
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);
    }
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值