Redis
文章平均质量分 83
85程序员老王
以下框架的中文版已译“Spring for Apache Kafka”、“Spring Data Elasticsearch”、“Spring Data MongoDB”、“Spring Data Redis”
展开
-
Spring整合Redis(一)----快速指南
首先,你需要设置一个正在运行的Redis服务器。Spring Data Redis 需要Redis 2.6或更高版本,并且Spring Data Redis集成了Lettuce和Jedis这两个流行的开源Java库。现在,你可以创建一个简单的Java应用程序,用于向Redis存储和读取值。原创 2024-01-30 10:33:27 · 615 阅读 · 0 评论 -
Spring整合Redis(二)----关于连接工厂
使用Redis和Spring的首要任务之一是通过IoC容器连接到存储。为此,需要一个Java连接器(或绑定)。无论你选择哪个库,你只需要使用一组Spring Data Redis api(它在所有连接器上的行为一致)。org.springframework.data.redis.connection包及其RedisConnection和RedisConnectionFactory接口,用于与Redis一同工作,并检索Redis的active连接。原创 2024-01-30 11:50:16 · 1188 阅读 · 0 评论 -
Spring整合Redis(三)----连接模式
Redis可以在各种设置中运行。每种操作模式都需要特定的配置,下面几节将对此进行解释。原创 2024-01-30 13:47:01 · 620 阅读 · 0 评论 -
Spring整合Redis(四)----RedisTemplate
大多数用户可能使用RedisTemplate及其相应的包org.springframework.data.redis.core或其reactive变体ReactiveRedisTemplate。由于其丰富的功能集,该template实际上是Redis模块的中心类。template为Redis交互提供了高级抽象。虽然[Reactive]RedisConnection提供了接受和返回二进制值(byte数组)的low-level方法,但template负责序列化和连接管理,使用户无需处理这些细节。原创 2024-01-30 13:48:18 · 403 阅读 · 0 评论 -
Spring整合Redis(五)----Redis Cache
Spring Data Redis在org.springframework.data.redis.cache包中提供了Spring框架缓存抽象(Cache Abstraction)的实现。RedisCacheManager行为可以通过RedisCacheManagerBuilder进行配置,允许您设置默认的RedisCacheConfiguration、事务行为和预定义缓存。如上面的示例所示,RedisCacheManager允许在每个缓存的基础上进行自定义配置。原创 2024-01-30 21:27:31 · 324 阅读 · 0 评论 -
Spring整合Redis(六)----Redis集群 Cluster
使用Redis Cluster需要Redis Server 3.0+版本。有关更多信息,请参阅。当将Redis Repositories和Redis Cluster一同使用时,请参阅如何。原创 2024-02-01 13:15:25 · 734 阅读 · 0 评论 -
Spring整合Redis(十四)----Redis Repositories
见定义Repository接口如果你希望避免将整个Java类名作为类型信息写入,并且希望使用键,则可以在要持久化的实体类上使用@TypeAlias注释。如果你需要更多地自定义映射,请查看接口。该接口的实例可以在DefaultRedisTypeMapper上配置,该映射器可以在MappingRedisConverter上配置。以下示例展示如何为实体定义类型别名:例3:为实体定义 @TypeAlias生成的document包含pers作为_class字段中的值。原创 2024-02-01 13:41:53 · 705 阅读 · 0 评论 -
Spring整合Redis(七)----Hash Mapping
你可以使用Redis中的各种数据结构来存储数据。Jackson2JsonRedisSerializer可以转换JSON格式的对象。理想情况下,通过使用plain键,JSON可以存储为值。通过使用Redis hashes,你可以实现更复杂的结构化对象映射。原创 2024-02-02 20:20:03 · 365 阅读 · 0 评论 -
Spring整合Redis(八)----发布/订阅消息
Spring Data为Redis提供了专用的消息集成,在功能和命名方面与Spring Framework中的JMS集成类似。这是一个通常称为发布/订阅(简称Pub/Sub)的模式示例。RedisTemplate类用于消息生成。对于类似于Java EE的消息驱动bean风格的异步接收,Spring Data提供了一个专用的消息监听器容器,用于创建消息驱动的POJO(MDP),对于同步接收,还提供RedisConnection。原创 2024-02-03 09:05:59 · 407 阅读 · 0 评论 -
Spring整合Redis(九)----Redis流 Streams
Redis Streams以抽象的方法对日志数据结构进行建模。通常,日志是仅追加(append-only)的数据结构,并且从一开始就在随机位置或通过流式传输新消息来消费。在中了解有关Redis Streams的更多信息。尽管这种模式与Pub/Sub有相似之处,但主要区别在于消息的持久性以及消息的消费方式。Pub/Sub依赖于瞬态消息的广播(即,如果你不听,你就会错过消息),而Redis Stream使用了一种持久的、仅追加的数据类型,它会保留消息,直到流被修剪。原创 2024-02-03 15:35:34 · 557 阅读 · 0 评论 -
Spring整合Redis(十)----Lua脚本支持Scripting
默认情况下,ScriptExecutor(或ReactiveScriptExecutor)负责序列化提供的键和参数,并反序列化脚本结果。还有一个额外的重载,允许你为脚本参数和结果传递自定义序列化程序。这是Redis脚本的理想用例,因为它要求以原子方式(atomically)运行一组命令,并且一个命令的行为会受到另一个命令结果的影响。默认的ScriptExecutor通过检索脚本的SHA1并尝试首先运行evalsha来优化性能,如果Redis脚本缓存中还没有脚本,则返回eval。有关更多信息,请参阅“原创 2024-02-04 14:08:50 · 953 阅读 · 0 评论 -
Spring整合Redis(十一)----Redis事务 Transactions
Redis通过multi, exec 和 discard命令为事务提供支持。RedisTemplate上提供了这些操作。但是,RedisTemplate不能保证使用相同的连接运行事务中的所有操作。Spring Data Redis提供了SessionCallback接口,以便在需要使用同一连接执行多个操作时使用,例如在使用Redis事务时。RedisTemplate使用它的value、hash key和hash value序列化器在返回之前对exec的所有结果进行反序列化。原创 2024-02-04 14:22:53 · 450 阅读 · 0 评论 -
Spring整合Redis(十二)----Redis管道Pipelining
如果不关心管道操作的结果,可以使用标准的execute方法,为pipeline参数传递true。Redis提供了对管道(pipelining)的支持,这包括在不等待回复的情况下向服务器发送多个命令,然后在一个步骤中读取回复。当你需要在一行中发送多个命令(例如向同一列表中添加多个元素)时,管道可以提高性能。请注意,RedisCallback返回的值必须为null,因为为了返回管道命令的结果,会丢弃此值。Lettuce驱动程序支持细粒度的刷新控制,允许在命令出现时刷新命令,缓冲或在连接关闭时发送命令。原创 2024-02-04 15:54:42 · 475 阅读 · 0 评论 -
Spring整合Redis(十三)----支持类Support Classes
特别是RedisSet和RedisZSet接口提供了对Redis支持的集合操作的轻松访问,如交集(intersection)和并集(union)。RedisList在Redis之上实现了List、Queue和Deque契约(及其等效的阻塞同级),以最小配置将存储暴露为FIFO(先进先出)、LIFO(后进先出)或有上限的集合。如前面的示例所示,消费代码与实际的存储实现解耦。这使得从开发环境迁移到生产环境变得透明,并且大大提高了可测试性(Redis的实现可以被内存中的(in-memory)实现取代)。原创 2024-02-04 16:28:19 · 680 阅读 · 0 评论