redis-om-spring: 更好的搜尋、文件模型等的 Spring Data Redis 擴充套件
Redis OM Spring擴充套件了Spring Data Redis以充分利用 Redis 的強大功能。
Redis OM Spring 提供強大的儲存庫和自定義物件對映抽象,這些抽象構建在強大的 Spring Data Redis (SDR) 框架之上。
新增Maven依賴:
<dependency> <groupId>com.redis.om.spring</groupId> <artifactId>redis-om-spring</artifactId> <version>${version}</version> </dependency> |
主應用:
@SpringBootApplication @Configuration @EnableRedisDocumentRepositories(basePackages = "com.redis.documents.*") public class RdsDocumentsApplication { @Autowired CompanyRepository companyRepo; @Bean CommandLineRunner loadTestData() { return args -> { companyRepo.deleteAll(); Company redis = Company.of( "Redis", "https://redis.com", new Point(-122.066540, 37.377690), 526, 2011 // ); redis.setTags(Set.of("fast", "scalable", "reliable")); Company microsoft = Company.of( "Microsoft", "https://microsoft.com", new Point(-122.124500, 47.640160), 182268, 1975 // ); microsoft.setTags(Set.of("innovative", "reliable")); }; } public static void main(String[] args) { SpringApplication.run(RdsDocumentsApplication.class, args); } } |
- @EnableRedisDocumentRepositories使用 Repository 介面自動實現複雜的查詢功能
實體類:
@Data @RequiredArgsConstructor(staticName = "of") @AllArgsConstructor(access = AccessLevel.PROTECTED) @Document public class Company { @Id private String id; @Searchable private String name; @Indexed private Point location; @Indexed private Set<String> tags = new HashSet<String>(); @Indexed private Integer numberOfEmployees; @Indexed private Integer yearFounded; private String url; private boolean publiclyListed; // ... |
- @Document 將 Spring Data 模型對映到 Redis JSON 文件的註釋
- 宣告式搜尋索引透過 @Indexable
- 全文檢索索引透過 @Searchable
倉儲介面:
public interface CompanyRepository extends RedisDocumentRepository<Company, String> { // find one by property Optional<Company> findOneByName(String name); // geospatial query Iterable<Company> findByLocationNear(Point point, Distance distance); // find by tag field, using JRediSearch "native" annotation @Query("@tags:{$tags}") Iterable<Company> findByTags(@Param("tags") Set<String> tags); // find by numeric property Iterable<Company> findByNumberOfEmployees(int noe); // find by numeric property range Iterable<Company> findByNumberOfEmployeesBetween(int noeGT, int noeLT); // starting with/ending with Iterable<Company> findByNameStartingWith(String prefix); } |
儲存庫代理有兩種方法可以從方法名稱派生特定於商店的查詢:
- 透過直接從方法名稱派生查詢。
- 透過使用@Query或@Aggregation註釋使用手動定義的查詢。
相關文章
- 可擴充套件的搜尋元件套件元件
- 使用Kotlin擴充套件函式擴充套件Spring Data案例Kotlin套件函式Spring
- Laravel 之搜尋引擎elasticsearch擴充套件ScoutLaravelElasticsearch套件
- 使用 Postgres 的全文搜尋構建可擴充套件的事件驅動搜尋架構套件事件架構
- 微軟推出必應程式碼搜尋擴充套件微軟套件
- ✍ 寫一個擴充套件性較強的搜尋主頁套件
- Spring IoC 容器的擴充套件Spring套件
- PHPWAMP安裝Redis擴充套件的方式與相關擴充套件的下載PHPRedis套件
- redis以及php的redis擴充套件安裝部署RedisPHP套件
- php7安裝redis擴充套件和memcache擴充套件PHPRedis套件
- [外掛擴充套件]通過標題搜尋站外資訊套件
- redis的PHP擴充套件包安裝方法RedisPHP套件
- PHP安裝redis擴充套件PHPRedis套件
- php8.2 redis擴充套件PHPRedis套件
- Redis 實戰 —— 13. 擴充套件 RedisRedis套件
- 聊聊spring的那些擴充套件機制Spring套件
- spring bean 擴充套件方式SpringBean套件
- 手把手教你配置php的redis擴充套件PHPRedis套件
- redis高可用強擴充套件的叢集方案Redis套件
- php安裝redis擴充套件及操作redisPHPRedis套件
- docker PHP 安裝 Redis 擴充套件DockerPHPRedis套件
- laragon 新增 PHP_Redis 擴充套件GoPHPRedis套件
- Homestead 安裝 Redis 擴充套件Redis套件
- PHP 操作 Redis 之 phpredis 擴充套件PHPRedis套件
- springmvc redis @Cacheable擴充套件(一)SpringMVCRedis套件
- Laragon新增PHP_Redis擴充套件GoPHPRedis套件
- SharePoint 2013 開發——搜尋架構及擴充套件架構套件
- Airflow 中文文件:用Dask擴充套件AI套件
- 聊聊Spring中的那些擴充套件機制Spring套件
- Spring 中的 XML schema 擴充套件機制SpringXML套件
- Spring容器擴充套件機制Spring套件
- Spring擴充套件介面(2):BeanDefinitionRegistryPostProcessorSpring套件Bean
- centos7 安裝redis和redis擴充套件CentOSRedis套件
- windows下安裝php5.5的redis擴充套件WindowsPHPRedis套件
- [Open Source] .NET 基於StackExchange.Redis的擴充套件Redis套件
- Homestead 安裝 PHP Redis 擴充套件PHPRedis套件
- php安裝memcache、redis擴充套件模組PHPRedis套件
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式