zoukankan      html  css  js  c++  java
  • SpringBoot中使用Redis

    本篇在前文《SpringBoot中集成持久层框架Mybatis》基础上改的,因此代码量和可讲解的部分也只限于如何集成Redis,及简单的Redis操作。

    一、完成后的工程目录结构:

     

    二、如何集成Redis

    1、在pom.xml中添加SpringBoot对Redis支持的起步依赖:

        <!-- redis起步依赖 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-redis</artifactId>
                <version>1.4.7.RELEASE</version>
            </dependency>

      完整的pom.xml文件内容:

    <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/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>cn.com.winson.springboot</groupId>
        <artifactId>maven-springboot</artifactId>
        <packaging>war</packaging>
        <version>0.0.1-SNAPSHOT</version>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.5.17.RELEASE</version>
            <relativePath />
        </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>
            <!-- redis起步依赖 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-redis</artifactId>
                <version>1.4.7.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.3.2</version>
            </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>
    </project>
    View Code

    2、核心配置文件application.properties中设置连接redis的信息:

    #配置redis连接信息
    spring.redis.host=127.0.0.1
    spring.redis.port=6379
    #我本地redis没有设置密码
    spring.redis.password=

      完整的application.properties内容:

    #配置数据库连接信息
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/test
    spring.datasource.username=root
    spring.datasource.password=root
    
    #配置MyBatis的Mapper.xml文件所在位置:
    mybatis.mapper-locations=classpath:mybatis/UserMapper.xml
    
    #配置redis连接信息
    spring.redis.host=127.0.0.1
    spring.redis.port=6379
    #我本地redis没有设置密码
    spring.redis.password=
    View Code

    3、通过以上两步设置,如果程序启动成功(证明连接Redis成功)后,SpringBoot就会为我们自动生成一个RedisTemplate的bean,该bean称为redis的操作模板,可以直接在程序中引入,就可以使用。具体使用为:

    package cn.com.winson.service.impl;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.stereotype.Service;
    
    import cn.com.winson.dao.UserMapper;
    import cn.com.winson.service.UserService;
    
    @Service
    public class UserServiceImpl implements UserService {
    
        @Autowired
        private UserMapper userMapper;
        
        /* 注入Redis操作模板 */
        @Autowired
        private RedisTemplate<String, String> redisTemplate;
    
        @Override
        public String getUserById(String id) {
            String userInfo = redisTemplate.opsForValue().get("userInfo");
            if (null == userInfo) {
                String userStr = userMapper.selectByPrimaryKey(id).toString();
                redisTemplate.opsForValue().set("userInfo", userStr);
                return userStr;
            }
            return userInfo;
        }
    
    }

      注意:通过示例中使用的redis模板,可以发现模板的泛型为<String,String>,泛型还可以定义为<Object,Object>,只有这两种泛型,使用的时候要注意。

      泛型两种格式:我这里操作的是字符串数据,如果是复杂类型的数据,泛型使用<Object,Object>。

    @Autowired
    private RedisTemplate<String, String> redisTemplate;
    
    @Autowired
    private RedisTemplate<Object, Object> redisTemplate;

    4、运行程序,访问结果为:

    二、本例是使用windows系统中的Redis,很简单直接双击redis-server.exe就启动了redis服务了。

    redis启动成功的页面:

    使用Redis Desktop Manager连接redis,该软件为redis的远程客户端,可以很方便的查看redis数据库内容及操作redis数据库信息。:

      连接成功以后可以查看到我们刚才运行程序后,数据已经存储到redis数据库中了:对比上面的访问结果,发现与浏览器返回的数据是一致的。

     总结:

    一、SpringBoot操作Redis是使用redis模板,即RedisTemplate,添加redis依赖,配置redis连接信息后,redis模板的bean自动创建。

    二、本例使用的是windows中的redis,真正生产环境中,使用的是Linux中的redis。

    三、还有一种是redis哨兵集群模式下配置redis,因为它只是更改了redis连接配置就可以实现,没有使用代码,故这里不做示例了,以后有时间再补充吧。

    代码地址:https://gitee.com/top_one/SpringBoot-Redis.git

  • 相关阅读:
    secureCRT常用设置
    SecureCRT恢复默认字体
    hdu 1515 dfs
    hdu 2216 bfs
    hdu 1973 bfs+素数判断
    hdu 1429 bfs+状压
    poj 3463 次短路
    hdu 2962 最短路+二分
    hdu 2112 最短路
    hdu 3397 线段树
  • 原文地址:https://www.cnblogs.com/elnimo/p/10087963.html
Copyright © 2011-2022 走看看