springboot简易使用redis缓存
2018-10-26 17:24
477 查看
写在前面:本文将使用的是redis单节点docker环境,如需redis集群环境请移步至https://blog.csdn.net/belonghuang157405/article/details/80934743
redis中文教程:http://www.redis.cn
项目地址:https://github.com/Blankwhiter/redis
一、搭建redis环境
拉取镜像并启动redis容器
docker pull redis docker run -d -p 6379:6379 --name redis-single redis
二、springboot集成redis
1.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>redis</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>redis</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </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> <!--引入springboot redis--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!--引入序列化 由于本次测试没有引入spring-boot-starter-web模块,故引入jackson-databind <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.6</version> <scope>compile</scope> </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>
2.application.yml
spring: redis: host: 192.168.9.219 port: 6379 jedis: pool: max-active: 100 max-idle: 10 max-wait: -1ms min-idle: 5 password:
3.User.java
public class User { private Integer id; private String name; private int age; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
4.RedisConfig.java
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import java.net.UnknownHostException; @Configuration public class RedisConfig { /** * 重新设置redis序列化 采用json格式 默认采用的是jdk序列化 * @param redisConnectionFactory * @return * @throws UnknownHostException */ @Bean public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException { RedisTemplate<Object, Object> template = new RedisTemplate(); Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>( Object.class); template.setDefaultSerializer(jackson2JsonRedisSerializer); template.setConnectionFactory(redisConnectionFactory); return template; } }
5.测试类
import com.example.redis.po.User; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class RedisApplicationTests { /** * 操作key-value都是字符串 */ @Autowired StringRedisTemplate stringRedisTemplate; /** * 操作key-value都是对象 */ @Autowired RedisTemplate redisTemplate; /** * 自定义序列后的RedisTemplate */ @Autowired RedisTemplate<Object, Object> newRedisTemplate; /** * 测试保存 * redis常见数据类型:string-字符串 list-列表 set-集合 hash-散列 zset-有序集合 * stringRedisTemplate.opsForValue() 操作字符串 * stringRedisTemplate.opsForList() 操作列表 * stringRedisTemplate.opsForSet() 操作集合 * stringRedisTemplate.opsForHash() 操作散列 * stringRedisTemplate.opsForZet() 操作有序集合 */ @Test public void testSave() { stringRedisTemplate.opsForValue().append("token","123"); } /** * 测试读取 */ @Test public void testRead() { String token = stringRedisTemplate.opsForValue().get("token"); System.out.println(token); } /** * 自定序列化redisTemplate 写入 */ @Test public void testNewSave(){ User user = new User(); user.setId(1); user.setName("jack"); user.setAge(20); newRedisTemplate.opsForValue().set("user-one",user); } /** * 自定序列化redisTemplate 读取 */ @Test public void testNewRead() { String token = newRedisTemplate.opsForValue().get("user-one").toString(); System.out.println(token); } }
其他数据类型请读者自行查看api进行测试。
阅读更多相关文章推荐
- springboot使用redis缓存
- springboot简易使用kafka
- Spring Boot使用过滤器和拦截器分别实现REST接口简易安全认证
- Android实战简易教程-第十九枪(SwipeRefreshLayout下拉刷新使用实例)
- 使用 HttpClient 和 HtmlParser 实现简易爬虫
- Redis缓存、MemCached和.Net内部缓存的切换使用
- springboot(五):spring data jpa的使用
- Jenkins使用简易教程
- 使用Java实现的简易登录注册程序
- python aiohttp简易使用教程
- redis缓存的安装和使用
- 条件变量的简易使用
- springboot使用(三)
- git使用简易指南(转)
- 简易使用select2
- Git可视化极简易教程 — Git GUI使用方法
- 二十二、Spring Boot中使用Redis缓存
- BoundsChecker简易使用教程
- 使用redis缓存数据