SpringBoot+Redis环境搭建

duanwu 2017-11-30 原文

SpringBoot+Redis环境搭建

写在正文前的絮叨:

       其实这个环境的搭建是很简单的,照着官网给的说明很快就可以搭建测试出来。为什么又要写出来呢?只是为了记录、保留、分享这其中遇到的坑。

这个环境之前在架构一个简单系统时,也曾经搭建过,是springsession+redis。这里先落下伏笔(是坑的来源之一)。

 

正文:

        首先要快速搭建一个maven项目,并使用springboot ,可以去spring官网中的 https://start.spring.io/ 快速构建,添加web、redis  pom即可。这里注意选择的版本(也是坑的来源之一)

        如图:目录结构。其中标红框中是要我们添加内容的。

                  

 

 

    其中:1.DemoApplication.java内容

        

package com.example.demo;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoApplication {

 public static void main(String[] args) {
  SpringApplication.run(DemoApplication.class, args);
 }
 @Autowired
 private StringRedisTemplate stringRedisTemplate;
 
 @RequestMapping(“/age/{age}”)
 public String testRedis(@PathVariable String age){
  ValueOperations<String, String> ops =stringRedisTemplate.opsForValue();
  
  ops.set(“bbb”, age);
  RedisConnection connection = stringRedisTemplate.getConnectionFactory().getConnection();
  List<String> config = connection.getConfig(“hostname”);
  return age; 
  
 }

}

 

  2.application.properties内容

# REDIS (RedisProperties)
# Redis数据库索引(默认为0)
spring.redis.database=0 
# Redis服务器地址
spring.redis.host=192.168.
# Redis服务器连接端口
spring.redis.port=6379 
# Redis服务器连接密码(默认为空)
spring.redis.password= 
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active=8 
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1 
# 连接池中的最大空闲连接
spring.redis.pool.max-idle=8 
# 连接池中的最小空闲连接
spring.redis.pool.min-idle=0 
# 连接超时时间(毫秒)
spring.redis.timeout=0
server.port = 9999

  3.pom.xml内容

<?xml version=”1.0″ encoding=”UTF-8″?>
<project xmlns=”http://maven.apache.org/POM/4.0.0″ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
 xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>
 <modelVersion>4.0.0</modelVersion>

 <groupId>com.example</groupId>
 <artifactId>demo</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <packaging>jar</packaging>

 <name>demo</name>
 <description>Demo project for Spring Boot</description>

 <parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>1.4.7.RELEASE</version>
  <relativePath/> <!– lookup parent from repository 2.0.0.BUILD-SNAPSHOT –>
 </parent>

 <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  <java.version>1.8</java.version>
 </properties>

 <dependencies>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-redis</artifactId>
  </dependency>
  
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
  </dependency>

  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-test</artifactId>
   <scope>test</scope>
  </dependency>
 </dependencies>

 <build>
  <plugins>
   <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
   </plugin>
  </plugins>
 </build>

 <repositories>
  <repository>
   <id>spring-snapshots</id>
   <name>Spring Snapshots</name>
   <url>https://repo.spring.io/snapshot</url>
   <snapshots>
    <enabled>true</enabled>
   </snapshots>
  </repository>
  <repository>
   <id>spring-milestones</id>
   <name>Spring Milestones</name>
   <url>https://repo.spring.io/milestone</url>
   <snapshots>
    <enabled>false</enabled>
   </snapshots>
  </repository>
 </repositories>

 <pluginRepositories>
  <pluginRepository>
   <id>spring-snapshots</id>
   <name>Spring Snapshots</name>
   <url>https://repo.spring.io/snapshot</url>
   <snapshots>
    <enabled>true</enabled>
   </snapshots>
  </pluginRepository>
  <pluginRepository>
   <id>spring-milestones</id>
   <name>Spring Milestones</name>
   <url>https://repo.spring.io/milestone</url>
   <snapshots>
    <enabled>false</enabled>
   </snapshots>
  </pluginRepository>
 </pluginRepositories>
</project>

  最后,启动你的redis服务端,并在application.properties中正确写host的值。

       启动项目,这个时候就可以发现能够写数据到redis中了。

 

写在正文结尾的絮叨:

  上面有两处提到坑:

        1.是之前有搭建过这样的环境,所以不可避免的会遗留一些配置。我的就是在本机的系统环境变量里添加了redis的连接属性配置,指向的是别的redis地址。这就覆盖了application.properties中的配置,导致我在我以为的目标redis库中永远看不到写的数据。

        2.是提到的构建系统时注意版本。。我本着用新的原则,使用的是2.0.0.BUILD-SNAPSHOT版本构建的,同样的配置。启动会报找不到RedisConnectionFactory  这个Bean的错误。这个一般不会想到是版本的问题,但是我之前有搭建过,所以进行比较下,

           我将原先的版本1.5.2.RELEASE进行替换,结果是成功的,然后是1.4.7.RELEASE也是可以的,但是1.3.1.RELEASE也会报错。

 

====总结:1.历史遗留 2.版本比较

 

 

祝好

 

发表于 2017-11-30 10:11 端午节后4天 阅读() 评论() 编辑 收藏

 

版权声明:本文为duanwu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:http://www.cnblogs.com/duanwu/p/7927694.html

SpringBoot+Redis环境搭建的更多相关文章

  1. 9、SpringBoot+Mybatis整合——动态sql

    开发工具:STS 前言: mybatis框架中最具特色的便是sql语句中的自定义,而动态sql的使用又使整个框 […]...

  2. Redis单机数据库的实现

    本文主要介绍Redis的数据库结构,Redis两种持久化的原理:RDB持久化、AOF持久化,以及Redis事件 […]...

  3. Spring Boot邮箱链接注册验证

    Spring Boot邮箱链接注册验证 Spring Boot邮箱链接注册验证 简单介绍 注册流程 【1】前端 […]...

  4. Redis高可用之主从复制实践

    一、介绍 1、Redis的高可用有如下几个部分组成: 第一部分:redis主从复制 第二部分:Sentinel […]...

  5. SpringBoot 源码解析 (一)—– SpringBoot核心原理入门

    Spring Boot 概述 Build Anything with Spring Boot:Spring B […]...

  6. Redis6.x学习笔记(二)持久化之RDB

    前言 最近学习Redis6.x,特做笔记以备忘,与大家共学。课程是从私塾在线下载的,他们把架构师课程都放出来了 […]...

  7. redis-发布订阅

    发布订阅是进程间的一种通信方式,发送者发送消息,订阅者接受消息。 发布订阅机制包含发送者、频道、订阅者三部分: […]...

  8. Redis

    前言 Redis是什么?redis是一种基于键值对(key-value)的NoSQL数据库。Redis会将所有 […]...

随机推荐

  1. JAVA中的反射

    反射机制是什么 Java反射指的是在运行状态时,能够获取类的属性和方法或者修改类运行时行为的过程。 java. […]...

  2. 腾讯视频qlv格式转换MP4普通视频方法

    QLV格式视频不是那么好对付的,似乎是一种加密格式,试着把.qlv改成.mp4或.flv都没有用,用格式工厂等 […]...

  3. 赫夫曼\\哈夫曼\\霍夫曼编码 (Huffman Tree)

    据说Huffman会分身,不然怎么会有这么多名字 哈夫曼树 给定n个权值作为n的叶子结点,构造一棵二叉树,若带 […]...

  4. SpringBoot开发案例Nacos配置管理中心

    前言 在开发过程中,通常我们会配置一些参数来实现某些功能,比如是否开启某项服务,告警邮件配置等等。一般会通过硬 […]...

  5. [斯坦福大学2014机器学习教程笔记]第五章-控制语句:for,while,if语句

          在本节中,我们将学习如何为Octave程序写控制语句。     首先,我们先学习如何使用for循环 […]...

  6. iPhone无法在Mac的Finder中显示?如何解决问题 – 余生不见空

    iPhone无法在Mac的Finder中显示?如何解决问题 首先,可能有多种原因导致您的iPhone或iPad […]...

  7. Oracle数据库期末总结

    oracle期末考试提纲 目录 基础内容-服务相关 Oracle体系结构: 表空间与数据文件之间的关系: 内存 […]...

  8. Java高级面试题解析(二):百度Java面试题前200页(精选)

    基本概念 操作系统中 heap 和 stack 的区别 heap是堆,stack是栈,是两种不同的数据结构。堆 […]...

展开目录

目录导航