关闭

spring-boot redis 配置

标签: javaspring-bootredis
4152人阅读 评论(0) 收藏 举报
分类:

Redis简介

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种数据类型,如Strings,hashs,lists,sets,sorted sets,bitmaps,hyperloglogs等。

Redis 提供内置复制,Lua脚本,Lua回收,事务已经不同级别的磁盘持久化功能,同时通过Redis Sentinel哨兵来提供高可用,以及集群的自动分区。

更多关于Redis 的知识可以参看以下网站:

Redis官网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"}


0
0
查看评论

Redis系列三 - Spring boot如何使用redis做缓存及缓存注解的用法总结

本文介绍Spring boot 如何使用redis做缓存,如何对redis缓存进行定制化配置(如key的有效期)以及spring boot 如何初始化redis做缓存。使用具体的代码介绍了@Cacheable,@CacheEvict,@CachePut,@CacheConfig等注解及其属性的用法。
  • hry2015
  • hry2015
  • 2017-07-19 22:20
  • 5964

spring-boot-starter-redis配置详解

spring-boot-starter-redis主要是通过配置RedisConnectionFactory中的相关参数去实现连接redis service
  • h363659487
  • h363659487
  • 2017-07-11 14:00
  • 3233

spring-boot redis 配置

Redis简介 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种数据类型,如Strings,hashs,lists,sets,sorted sets,bitmaps,hyperloglogs等。 Redis 提供内置复制,Lu...
  • zl18310999566
  • zl18310999566
  • 2017-01-03 19:20
  • 4152

SpringBoot学习笔记(5) Spring Boot集成Redis实现自动配置

通过上面一些笔记的介绍, 我们可以自己动手去集成Redis, 没有什么难度的 还有Spring Boot官方提供了Spring-Data-Redis的Starter POM
  • a67474506
  • a67474506
  • 2016-09-20 13:37
  • 41052

spring boot data redis的三种配置方式

# redis 单机版 #spring.redis.host: 10.100.112.139 #spring.redis.password: 123456 #spring.redis.port: 6379 #spring.redis.database: 3 # redis sent...
  • jiongyi1
  • jiongyi1
  • 2016-11-30 11:58
  • 5752

Spring boot下配置使用redis--注解形式

继上一篇的template编码方式使用redis 编码形式配置(一) 编码形式使用(二)经过深入学习发现注解形式的更好用一些,省去一些繁琐的代码,使得你代码看起来更优雅 安装redis服务端请看编码形式配置(一)1. pom.xml添加jar包支持,使用springboot自带的redis启动...
  • yy756127197
  • yy756127197
  • 2017-07-13 20:35
  • 3901

Spring Boot Redis 集成配置

Spring Boot 熟悉后,集成一个外部扩展是一件很容易的事,集成Redis也很简单,看下面步骤配置:一、添加pom依赖 <dependency> <groupId>org.springframework.boot</group...
  • catoop
  • catoop
  • 2017-05-06 18:14
  • 7456

5Spring Boot集成Redis实现自动配置

spring Boot官方提供了Spring-Data-Redis的Starter POM 有兴趣的可以查看下这篇资料 http://blog.didispace.com/springbootredis/?utm_source=tuicool&utm_medium=...
  • xiaoliuliu2050
  • xiaoliuliu2050
  • 2016-12-29 18:13
  • 1787

spring boot(三):Spring Boot中Redis的使用

spring boot对常用的数据库支持外,对nosql 数据库也进行了封装自动化。 redis介绍 Redis是目前业界使用最广泛的内存数据存储。相比memcached,Redis支持更丰富的数据结构,例如hashes, lists, sets等,同时支持数据持久化。除此之外,Redi...
  • gebitan505
  • gebitan505
  • 2017-02-08 14:15
  • 5087

SpringBoot入门系列:第四篇 redis

一,准备工作,建立spring-boot-sample-redis工程 1、http://start.spring.io/      A、Artifact中输入spring-boot-sample-redis      ...
  • lxhjh
  • lxhjh
  • 2016-06-24 18:01
  • 25145
    个人资料
    • 访问:149289次
    • 积分:1878
    • 等级:
    • 排名:千里之外
    • 原创:49篇
    • 转载:11篇
    • 译文:1篇
    • 评论:27条
    最新评论