一、springboot nosql 简介

Spring Data提供其他项目,用来帮你使用各种各样的NoSQL技术,包括MongoDB, Neo4J, Elasticsearch, Solr, Redis,Gemfire, Couchbase和Cassandra。Spring Boot为Redis, MongoDB, Elasticsearch, Solr和Gemfire提供自动配置。你可以充分利用其他项目,但你需要自己配置它们。
1.1、Redis
Redis是一个缓存,消息中间件及具有丰富特性的键值存储系统。Spring Boot为Jedis客户端库和由Spring Data Redis提供的基于Jedis客户端的抽象提供自动配置。 spring-boot-starter-redis 'Starter POM'为收集依赖提供一种便利的方式。
Redis添加maven依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <!-- <version>1.3.5.RELEASE</version> --> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-commons --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <!-- <version>1.3.6.RELEASE</version> --> </dependency>
1.2连接Redis
你可以注入一个自动配置的RedisConnectionFactory,StringRedisTemplate或普通的跟其他Spring Bean相同的RedisTemplate实例。默认情况下,这个实例将尝试使用localhost:6379连接Redis服务器。
@Component
public class MyBean {
private StringRedisTemplate template;
@Autowired
public MyBean(StringRedisTemplate template) {
this.template = template;
}
// ...
}
如果你添加一个你自己的任何自动配置类型的@Bean,它将替换默认的(除了RedisTemplate的情况,它是根据bean的名称'redisTemplate'而不是它的类型进行排除的)。如果在classpath路径下存在commons-pool2,默认你会获得一个连接池工厂。
1.3 建立多个redis连接
使用redis的默认配置可以连接到redis中的0库中,如果指定库连接需要配置indexdb,同时如果需要连接多个redis服务,也需要同时配置多个数据源
1.3.1、application.yml 文件 中增加:
@Component
public class MyBean {
private StringRedisTemplate template;
@Autowired
public MyBean(StringRedisTemplate template) {
this.template = template;
}
// ...
}
1.3.2、创建redisconfiguration
@Configuration
public class Redis137_11Configuration {
@Bean(name = "redis123Template")
public StringRedisTemplate redisTemplate(
@Value("${redis123.hostName}") String hostName,
@Value("${redis123.port}") int port,
@Value("${redis123.password}") String password,
@Value("${redis123.maxIdle}") int maxIdle,
@Value("${redis123.maxTotal}") int maxTotal,
@Value("${redis123.index}") int index,
@Value("${redis123.maxWaitMillis}") long maxWaitMillis,
@Value("${redis123.testOnBorrow}") boolean testOnBorrow) {
StringRedisTemplate temple = new StringRedisTemplate();
temple.setConnectionFactory(connectionFactory(hostName, port, password,
maxIdle, maxTotal, index, maxWaitMillis, testOnBorrow));
return temple;
}
public RedisConnectionFactory connectionFactory(String hostName, int port,
String password, int maxIdle, int maxTotal, int index,
long maxWaitMillis, boolean testOnBorrow) {
JedisConnectionFactory jedis = new JedisConnectionFactory();
jedis.setHostName(hostName);
jedis.setPort(port);
if (!StringUtils.isEmpty(password)) {
jedis.setPassword(password);
}
if (index != 0) {
jedis.setDatabase(index);
}
jedis.setPoolConfig(poolCofig(maxIdle, maxTotal, maxWaitMillis,
testOnBorrow));
// 初始化连接pool
jedis.afterPropertiesSet();
RedisConnectionFactory factory = jedis;
return factory;
}
public JedisPoolConfig poolCofig(int maxIdle, int maxTotal,
long maxWaitMillis, boolean testOnBorrow) {
JedisPoolConfig poolCofig = new JedisPoolConfig();
poolCofig.setMaxIdle(maxIdle);
poolCofig.setMaxTotal(maxTotal);
poolCofig.setMaxWaitMillis(maxWaitMillis);
poolCofig.setTestOnBorrow(testOnBorrow);
return poolCofig;
}
}
1.3.3、声明redis抽象基类,创建redis的操作方法
public abstract class AbRedisConfiguration {
protected StringRedisTemplate temple;
public void setData(String key, String value) {
getTemple().opsForValue().set(key, value);
}
public String getData(String key) {
return getTemple().opsForValue().get(key);
}
public StringRedisTemplate getTemple() {
return temple;
}
}
1.3.4、根据数据源,创建不同的子类@Component
public class Redis123 extends AbRedisConfiguration {
@Resource(name = "redis123Template")
private StringRedisTemplate temple;
public StringRedisTemplate getTemple() {
return temple;
}
}
ps:类和子类中同时声明了getTemple方法和 StringRedisTemple属性,子类通过重写父类的getTeimple方法,把子类的自己StringRedisTemple 属性 传给 父类,父类通过子类传递过来的StringRedisTemple使用不通的数据链接来操作缓存。至此,父类完成所有的操作方法,而当需要创建一个数据库连接时,只需要在创建一个子类,被声明自己的StringRedisTemple,并传给父类即可。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# springboot
# 连接redis
# spring
# boot
# redis
# springboot配置redis
# springboot之如何同时连接多个redis
# springboot连接不上redis的三种解决办法
# springboot连接Redis的教程详解
# 基于SpringBoot2.0默认使用Redis连接池的配置操作
# SpringBoot连接Redis2种模式解析
# SpringBoot初步连接redis详解
# springBoot连接远程Redis连接失败的问题解决
# 子类
# 多个
# 自己的
# 你可以
# 创建一个
# 操作方法
# 客户端
# 是一个
# 如果你
# 你会
# 只需
# 帮你
# 它是
# 要在
# 重写
# 充分利用
# 但你
# 它将
# 连接到
# 而当
相关文章:
建站主机选购指南与交易推荐:核心配置解析
建站之星后台管理如何实现高效配置?
宝塔建站后网页无法访问如何解决?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
成都网站制作公司哪家好,四川省职工服务网是做什么用?
制作旅游网站html,怎样注册旅游网站?
如何快速搭建自助建站会员专属系统?
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
如何在局域网内绑定自建网站域名?
如何在西部数码注册域名并快速搭建网站?
怎么将XML数据可视化 D3.js加载XML
网站制作公司排行榜,抖音怎样做个人官方网站
如何用景安虚拟主机手机版绑定域名建站?
网站好制作吗知乎,网站开发好学吗?有什么技巧?
网站图片在线制作软件,怎么在图片上做链接?
如何通过二级域名建站提升品牌影响力?
威客平台建站流程解析:高效搭建教程与设计优化方案
中山网站制作网页,中山新生登记系统登记流程?
如何通过远程VPS快速搭建个人网站?
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
个人网站制作流程图片大全,个人网站如何注销?
如何通过wdcp面板快速创建网站?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
如何确认建站备案号应放置的具体位置?
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
如何选购建站域名与空间?自助平台全解析
相册网站制作软件,图片上的网址怎么复制?
如何高效完成自助建站业务培训?
大连 网站制作,大连天途有线官网?
建站主机是否等同于虚拟主机?
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
宝塔Windows建站如何避免显示默认IIS页面?
南京网站制作费用,南京远驱官方网站?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
中山网站推广排名,中山信息港登录入口?
建站VPS推荐:2025年高性能服务器配置指南
为什么Go需要go mod文件_Go go mod文件作用说明
安徽网站建设与外贸建站服务专业定制方案
如何选择适配移动端的WAP自助建站平台?
如何在Ubuntu系统下快速搭建WordPress个人网站?
建站之星价格显示格式升级,你的预算足够吗?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
建站主机与虚拟主机有何区别?如何选择最优方案?
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
实惠建站价格推荐:2025年高性价比自助建站套餐解析
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
建站之星安装后如何配置SEO及设计样式?
如何在IIS7中新建站点?详细步骤解析
*请认真填写需求信息,我们会在24小时内与您取得联系。