还在直接操作 Redis?赶快来试试这个

  有些人还在直接用Jedis操作Redis数据库,但这种方式非常不方便,而且很不灵活。用Spring Boot整合Redis之后,既能非常方便地操作Redis数据库,Spring Boot又可以*地在Lettuce或Jedis等技术之间*切换。

  目前Jedis操作Redis已经趋于淘汰,而是应该使用Lettuce。Spring Data Redis模块默认使用Lettuce。

  由于Spring Data是高层次的抽象,而SpringData Redis只是属于底层的具体实现,因此Spring Data Redis也提供了与前面Spring Data完全一致的操作。

  归纳起来,Spring Data Redis大致包括如下几方面功能。

  DAO接口只需继承CrudRepository,Spring Data Redis能为DAO组件提供实现类。

  Spring Data Redis支持方法名关键字查询,只不过Redis查询的属性必须是被索引过的。

  Spring Data Redis同样支持DAO组件添加自定义的查询方法—通过添加额外的接口,并为额外的接口提供实现类,Spring Data Redis就能将该实现类中的方法“移植”到DAO组件中。

  Spring Data Redis同样支持Example查询。

  需要说明的是,Spring Data Redis支持的方法名关键字查询功能不如JPA强大,这是由Redis底层决定的—Redis不支持任何查询,它是一个简单的key-value数据库,它获取数据的唯一方式就是根据key获取value。因此它不能支持GreaterThan、LessThan、Like等复杂关键字,它只能支持如下简单的关键字。

  And:比如在接口中可以定义“findByNameAndAge”。

  Or:比如“findByNameOrAge”。

  Is、Equals:比如“findByNameIs”“findByName”“findByNameEquals”。这种表示相同或相等的关键字不加也行。

  Top、First:比如“findFirst5Name”“findTop5ByName”,实现查询前5条记录。

  那问题来了,Spring Data操作的是数据类(对JPA则是持久化类),那么它怎么处理卖二手手游账号平台数据类与Redis之间的映射关系呢?其实很简单,SpringData Redis提供了如下两个注解。

  @RedisHash:该注解指定将数据类映射到Redis的Hash对象。

  @TimeToLive:该注解修饰一个数值类型的属性,用于指定该对象的超时时长。

  此外,Spring Data Redis还提供了如下两个索引化注解。

  @Indexed:指定对普通类型的属性建立索引,索引化后的属性可用于查询。

  @GeoIndexed:指定对Geo数据(地理数据)

上一篇:Linux性能测试 ss命令


下一篇:Istio 在阿里云容器服务的部署及流量治理实践