spring 项目中使用redis

简要 spring对redis做了封装,需要引入的jar包为 spring-data-redis.jar. s…

简要

spring对redis做了封装,需要引入的jar包为 spring-data-redis.jar.

spring-data-redis.1.x.jar跟spring-data-redis.2.x.jar在实现上有所不同。

本文基于1.8.12与2.x两个版本,分析如何在spring项目中使用、配置redis。

代码实现

1.8.12版本

JedisConnectionFactory类图

根据JedisConnectionFactory.java类图可以看出,提供了不同入参的构造器,以满足Redis三种模式(单机模式、哨兵模式、集群模式)的连接配置。

其中:

JedisConnectionFactory(); 采用默认localhost:6379获取单机模式连接;

JedisConnectionFactory(JedisPoolConfig poolConfig); 采用localhost:6379获取单机模式连接,并使用自定义连接池配置;

JedisConnectionFactory(JedisShardInfo shardInfo); shardInfo封装了单机模式连接所需属性以及ssl连接配置;

【上代码】

单机模式:

测试代码:

哨兵模式:

了解哨兵模式之前,需要先了解【主从复制模式】。

主从复制模式是redis集群模式中的一种,其他两种分别为:哨兵模式、cluster模式。由一个master server + n个slave server构成,slave server启动并连接到master后,会与master完成一次同步过程,master将整个数据库文件传输给slave,slave将接收到数据库文件保存到内存中。自此简单的主从复制模式已经完成,master server可以将客户端的读写请求交给slave server完成,客户端也可以选择进行读写分离,以提高redis的相应效率。

哨兵模式是基于主从复制模式的,只需要再启动一个redis服务,用来监听master server的服务状态,并在master server宕机后,自动选举一个slave node变为新的master,主从模式就变为哨兵模式。用来监听的redis服务即为“哨兵”。为了整个redis服务的正常运行,我们可以启动多个哨兵进程,以防单个哨兵进程的判断失误情况发生。

2.0.5版本

对比1.8.16版本,可以发现,主要的区别是封装类的替换。1.8.16中用来配封装客户端连接配置的JedisShardInfo.java类,被JedisClientConfiguration替换,封装的更加简洁明了。

在编码上,旧版本中setHostName(String);setPassword(String);setPort(Int)等set方法,在新版本中都是@Deprecated标注的,这就要求我们寻求更佳的实现方法。

以下,仅用单机+连接池方式为示例:

本文来自网络,不代表软粉网立场,转载请注明出处:https://www.rfff.net/p/8341.html

作者: HUI

发表评论

您的电子邮箱地址不会被公开。

返回顶部