项目结构
依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
<dependencies>
<!-- 集成commons工具类 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!-- 集成lombok 框架 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.30</version>
</dependency>
<!-- SpringBoot-整合Web组件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--mysql数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
</dependencies>
<!-- 管理依赖 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.M7</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
配置文件:application.yml
spring:
redis:
host: 192.168.144.178
password: 123456
port: 6379
database: 1
#数据库连接配置
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/user?characterEncoding=utf-8&useSSL=false
username: root
password: root
UserEntity:
package com.demo.entity;
import lombok.Data;
@Data
public class UserEntity {
private Long userId;
private String userName;
}
redis存json中======================开始
RedisUtils:
package com.demo.utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;
@Component
public class RedisUtils {
/**
* 获取redis的模板
*/
@Autowired
private StringRedisTemplate stringRedisTemplate;
public void setString(String key, String value){
setString(key, value, null);
}
public void setString(String key, String value, Long timeout){
stringRedisTemplate.opsForValue().set(key, value);
if(timeout != null){
stringRedisTemplate.expire(key, timeout, TimeUnit.SECONDS);
}
}
public String getString(String key){
return stringRedisTemplate.opsForValue().get(key);
}
}
RedisController:
package com.demo.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.demo.entity.UserEntity;
import com.demo.utils.RedisUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class RedisController {
@Autowired
private RedisUtils redisUtils;
@RequestMapping("/addUser")
public String addUser(UserEntity userEntity){
// 将对象转成json
String json = JSON.toJSONString(userEntity);
redisUtils.setString("userEntity", json);
return "存储成功";
}
@RequestMapping("/getUser")
public UserEntity getUser(String key){
String json = redisUtils.getString(key);
// 将 json 转成对象
UserEntity userEntity = JSONObject.parseObject(json, UserEntity.class);
return userEntity;
}
}
redis存json中======================结束
App:
package com.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class);
}
}
启动程序
输入:127.0.0.1:8080/addUser?userId=123&userName=美丽
127.0.0.1:8080/getUser?key=userEntity
用 redis 客户端也可以查看的到刚才存入redis 的对象
redis存序列化中======================开始
RedisTemplateUtils:
package com.demo.utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.concurrent.TimeUnit;
@Component
public class RedisTemplateUtils {
@Resource
private RedisTemplate<String, Object> redisTemplate;
public void setObject(String key, Object value){
setObject(key, value, null);
}
public void setObject(String key, Object value, Long timeout){
redisTemplate.opsForValue().set(key, value);
if(timeout != null){
redisTemplate.expire(key, timeout, TimeUnit.SECONDS);
}
}
public Object getObject(String key){
return redisTemplate.opsForValue().get(key);
}
}
RedisTemplateController:
package com.demo.controller;
import com.demo.entity.UserEntity;
import com.demo.utils.RedisTemplateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class RedisTemplateController {
@Autowired
private RedisTemplateUtils redisTemplateUtils;
@RequestMapping("/addUser2")
public String addUser(UserEntity userEntity){
redisTemplateUtils.setObject("userEntity", userEntity);
return "存储成功";
}
@RequestMapping("/getUser2")
public UserEntity getUser(String key){
return (UserEntity) redisTemplateUtils.getObject(key);
}
}
启动程序
输入网址:
localhost:8080/addUser2?userId=111&userName=peng
localhost:8080/getUser2?key=userEntity
序列化存储的话,存入的值就不方便查看了
redis存序列化中======================结束