暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

springboot整合redis做缓存

读读书写写代码 2021-09-26
302

##主要内容

>主要框架

>

>准备数据

>

>配置

>

>测试工具及方法

>


##主要框架

springboot v2.1.2,mybatis-plus,redis,mysql


mybatis-plus简化CRUD操作,redis做缓存。

##数据准备

```

CREATE TABLE t_user (

  id int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',

  user_id char(11) NOT NULL COMMENT '用户标识,用手机号作为唯一标识。',

  user_name varchar(32) NOT NULL COMMENT '用户名',

  user_real_name varchar(32) NOT NULL COMMENT '真实姓名',

  user_nick varchar(32) NOT NULL COMMENT '昵称',

  user_gender char(1) NOT NULL COMMENT '性别,M/F',

  user_memo varchar(256) DEFAULT NULL COMMENT '说明信息',

  PRIMARY KEY (id),

  UNIQUE KEY user_id_UNIQUE (user_id)

) ENGINE=InnoDB AUTO_INCREMENT=100533 DEFAULT CHARSET=utf8 COMMENT='用户信息表';

```

##配置

###pom.xml中的依赖

```

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>


<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-cache</artifactId>

</dependency>

<dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-data-redis</artifactId>

        </dependency>

        

        <dependency>

            <groupId>org.apache.commons</groupId>

            <artifactId>commons-pool2</artifactId>

        </dependency>

<dependency>

<groupId>org.mybatis.spring.boot</groupId>

<artifactId>mybatis-spring-boot-starter</artifactId>

<version>2.0.0</version>

</dependency>

<dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-activemq</artifactId>

        </dependency>


<dependency>

<groupId>com.baomidou</groupId>

<artifactId>mybatis-plus-boot-starter</artifactId>

<version>3.0.7.1</version>

</dependency>


<dependency>

<groupId>com.baomidou</groupId>

<artifactId>mybatis-plus-generator</artifactId>

<version>3.0.7.1</version>

</dependency>


<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<scope>runtime</scope>

</dependency>

<dependency>

<groupId>org.projectlombok</groupId>

<artifactId>lombok</artifactId>

<optional>true</optional>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>


<!-- https://mvnrepository.com/artifact/org.apache.velocity/velocity -->

<dependency>

<groupId>org.apache.velocity</groupId>

<artifactId>velocity</artifactId>

<version>1.7</version>

</dependency>

```

###application.yml配置

```

server:

  port: 8008


logging:

  level:

    root: info

    io.lettuce.core.RedisClient: debug


spring:  

  datasource:

    driver-class-name: com.mysql.cj.jdbc.Driver

    url: jdbc:mysql://localhost:3306/cachetest

    username: root

    password:

    

  messages:

    basename: i18n/Messages,i18n/Pages

  jms:

    pub-sub-domain: false

  activemq:

    broker-url: tcp://localhost:61616

    

  redis:

    database: 0

    host: 127.0.0.1

    port: 6379

    lettuce:

      pool:

        max-active: 300

        max-idle: 100

        min-idle: 10

    

mybatis-plus:

  mapper-locations: classpath:mybatis/mappers/*Mapper.xml

  typeAliasesPackage: study.yqwu.cachetest.model

```

###mybatis-plus自动生成代码配置

```

package study.yqwu.cachetest.tools;


import com.baomidou.mybatisplus.generator.AutoGenerator;

import com.baomidou.mybatisplus.generator.config.DataSourceConfig;

import com.baomidou.mybatisplus.generator.config.GlobalConfig;

import com.baomidou.mybatisplus.generator.config.PackageConfig;

import com.baomidou.mybatisplus.generator.config.StrategyConfig;

import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;


public class MybatisPlusCodeGenerator {


public static void main(String[] args) {

AutoGenerator autoGenerator = new AutoGenerator();

GlobalConfig globalConfig = new GlobalConfig();

globalConfig.setAuthor("yqwu");

globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");

autoGenerator.setGlobalConfig(globalConfig);


DataSourceConfig dataSourceConfig = new DataSourceConfig();

dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");

dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/cachetest");

dataSourceConfig.setUsername("root");

dataSourceConfig.setPassword("");

autoGenerator.setDataSource(dataSourceConfig);


PackageConfig packageConfig = new PackageConfig();

packageConfig.setModuleName("User");

packageConfig.setParent("study.yqwu.cachetest");

autoGenerator.setPackageInfo(packageConfig);


StrategyConfig strategy = new StrategyConfig();

strategy.setNaming(NamingStrategy.underline_to_camel);

strategy.setColumnNaming(NamingStrategy.underline_to_camel);

strategy.setEntityLombokModel(true);

strategy.setRestControllerStyle(true);

strategy.setControllerMappingHyphenStyle(true);

strategy.setTablePrefix( "t_");

autoGenerator.setStrategy(strategy);

autoGenerator.execute();



}


}


```

###应用启动配置

```

@SpringBootApplication

@EnableCaching

public class CachetestApplication {


public static void main(String[] args) {

SpringApplication.run(CachetestApplication.class, args);

}

```

###redis缓存配置

```

@Override

@Cacheable(value="usercache",key="#id")

public User getUser(Integer id) {

return userMapper.selectById(id);

}

```

##测试工具配置

使用jmeter做交易测试

报文头配置必须加上`Content-Type:application/json`才能支持REST风格测试。

其他使用计数器、随机数等组件做数据查询,略过。


文章转载自读读书写写代码,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论