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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介:   有些人还在直接用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完全一致的操作。

  有些人还在直接用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数据(地理数据)

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
目录
相关文章
|
存储 缓存 NoSQL
【Go语言专栏】Go语言中的Redis操作与缓存应用
【4月更文挑战第30天】本文探讨了在Go语言中使用Redis进行操作和缓存应用的方法。文章介绍了Redis作为高性能键值存储系统,用于提升应用性能。推荐使用`go-redis/redis`库,示例代码展示了连接、设置、获取和删除键值对的基本操作。文章还详细阐述了缓存应用的步骤及常见缓存策略,包括缓存穿透、缓存击穿和缓存雪崩的解决方案。利用Redis和合适策略可有效优化应用性能。
275 0
|
NoSQL Linux Redis
Redis性能优化问题之想确认Redis延迟变大是否因为fork耗时导致的,如何解决
Redis性能优化问题之想确认Redis延迟变大是否因为fork耗时导致的,如何解决
|
缓存 NoSQL Redis
redis管道操作(节省网络IO开销)
pipeline中发送的每个command都会被server立即执行,如果执行失败,将会在此后的响应中得到信息;也就是pipeline并不是表达“所有command都一起成功”的语义,管道中前面命令失败,后面命令不会有影响,继续执行。
157 1
|
NoSQL Java Redis
如何在 Java 中操作这些 Redis 数据结构的基本方法
如何在 Java 中操作这些 Redis 数据结构的基本方法
113 2
|
NoSQL 数据管理 关系型数据库
数据管理DMS操作报错合集之控制台查看Redis时出现乱码是什么导致的
数据管理DMS(Data Management Service)是阿里云提供的数据库管理和运维服务,它支持多种数据库类型,包括RDS、PolarDB、MongoDB等。在使用DMS进行数据库操作时,可能会遇到各种报错情况。以下是一些常见的DMS操作报错及其可能的原因与解决措施的合集。
177 2
|
DataWorks NoSQL Java
DataWorks操作报错合集之数据集成使用公共数据集成资源组写入到redis数据源(使用的是VPC连接),提示以下错误:request action:[InnerVpcGrantVpcInstanceAccessToApp], message:[InvalidInstanceId.怎么解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
存储 NoSQL Go
轻松上手,使用Go语言操作Redis数据库
轻松上手,使用Go语言操作Redis数据库
166 2
|
NoSQL Redis
加速 Redis 操作:掌握管道技术提升性能与效率
加速 Redis 操作:掌握管道技术提升性能与效率
116 2
|
NoSQL Java Redis
【Redis】 Java操作客户端命令——列表操作与哈希操作
【Redis】 Java操作客户端命令——列表操作与哈希操作
|
NoSQL Java Linux
【Redis】 使用Java操作Redis的客户端
【Redis】 使用Java操作Redis的客户端