spring-boot redis 配置
spring-boot
spring-projects/spring-boot: 是一个用于简化Spring应用开发的框架。适合用于需要快速开发企业级Java应用的项目。特点是可以提供自动配置、独立运行和内置的Tomcat服务器,简化Spring应用的构建和部署。
项目地址:https://gitcode.com/gh_mirrors/sp/spring-boot
免费下载资源
·
Redis简介
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种数据类型,如Strings,hashs,lists,sets,sorted sets,bitmaps,hyperloglogs等。
Redis 提供内置复制,Lua脚本,Lua回收,事务已经不同级别的磁盘持久化功能,同时通过Redis Sentinel哨兵来提供高可用,以及集群的自动分区。
更多关于Redis 的知识可以参看以下网站:
Spring-boot Redis
POM依赖
同之前对mongodb的良好支持一样,spring-boot工程中只需增加如下依赖,就可以很好的使用redis
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
也和mongodb一样,如果redis启动时使用的是默认配置,即port=6379,则无需对项目的配置进行修改。
如果需要修改配置信息,则在application.properties文件中找到对应的配置进行修改即可,如下所示。
代码实现
增加如下代码,首先是redis的使用
package com.redis;
import com.alibaba.dubbo.common.utils.StringUtils;
import com.alibaba.fastjson.JSON;
import com.mail.MailMsg;
import org.apache.commons.lang.NullArgumentException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
@Component
public class MailMsgRedis {
public static final String MAIL_MASG_KEY = "mail:msg:to:%s";
@Autowired
private StringRedisTemplate stringRedisTemplate;
public void setMsg(MailMsg msg) {
if (msg == null)
throw new NullArgumentException("MailMsg is null.");
String key = String.format(MAIL_MASG_KEY, msg.getTo());
stringRedisTemplate.opsForValue().set(key, JSON.toJSONString(msg));
}
public MailMsg getMsgByTo(String to) {
if (StringUtils.isEmpty(to))
throw new NullArgumentException("to is null.");
String key = String.format(MAIL_MASG_KEY, to);
String result = stringRedisTemplate.opsForValue().get(key);
if (StringUtils.isEmpty(result))
return null;
return JSON.parseObject(stringRedisTemplate.opsForValue().get(key), MailMsg.class);
}
}
其中StringRedisTemplate里面包含对各数据结构的操作,如下图所示。
关于StringRedisTemplate更多的信息可以看其源码。
对之前发送邮件的代码稍作修改
@Autowired
private MailMsgRedis mailMsgRedis;
public void sendSimpleEmail(MailMsg mailMsg)
{
SimpleMailMessage msg = new SimpleMailMessage();
msg.setFrom(env.getProperty(MailPropKey.EMAIL_FROM));
msg.setTo(mailMsg.getTo());
msg.setSubject(mailMsg.getSubject());
msg.setText(mailMsg.getText());
javaMailSender.send(msg);
mailMsgRepository.insert(mailMsg);
mailMsgRedis.setMsg(mailMsg);
}
public MailMsg findByToFromRedis(String to) {
return mailMsgRedis.getMsgByTo(to);
}
在controller中增加从redis获取信息的方法
@RequestMapping("/find/redis/to")
public String findMailByToFromRedis(HttpServletRequest request, String to) {
MailMsg msg = mailHelper.findByToFromRedis(to);
if (msg == null)
return "not found by to " + to;
return "redis: " + JSON.toJSONString(msg);
}
测试
准备工作都已就绪,启动程序。
在浏览器中输入http://localhost:8080/mail,发送一封测试邮件,发送成功后可以在redis中看到如下信息
然后在浏览器中输入http://localhost:8080/find/redis/to?to=xxx@xx.com,可以看到页面会显示如下内容
redis: {"id":"586b81cfea092207cdfd18af","subject":"Test mongodb","text":"nothing need to care.","to":"xxx@xx.com"}
GitHub 加速计划 / sp / spring-boot
73.97 K
40.4 K
下载
spring-projects/spring-boot: 是一个用于简化Spring应用开发的框架。适合用于需要快速开发企业级Java应用的项目。特点是可以提供自动配置、独立运行和内置的Tomcat服务器,简化Spring应用的构建和部署。
最近提交(Master分支:2 个月前 )
fdf24c6c
Closes gh-42976
12 天前
3c42ba8c
* pr/42974:
Fix copyright year of updated file
Polish
Closes gh-42974
12 天前
更多推荐
已为社区贡献7条内容
所有评论(0)