首页 文章 精选 留言 我的

SpringBoot2整合Redis,开启缓存,提高访问速度

前言

什么是Redis

Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。
参考文档:https://www.redis.net.cn

为什么选择Redis

这个问题一般人会拿Redis和Memcache来做比较,但是个人认为这两者对比并不合适,因为Memcache仅仅作为缓存,而Redis是一个NoSQL数据库,除了缓存还能做其他的很多事。所以拿来对比的同学应该就只是拿Redis来做缓存用了。但是Redis还有很多高级功能,包括持久化、复制、哨兵、集群等。因此Redis的用途更为广泛。

编码

1.添加Redis依赖

之前的文章中我们讲到数据库连接池的作用,有太多的有点了,所以今天在Redis这边我们也建立一个连接池来连接Redis。提高资源的利用率。在此采用的org.apache.commons.pool2来作为池,因此需要对添加一个池依赖。
打开pom.xml文件,添加

xml 复制代码
<dependency>
	<groupId>org.apache.commons</groupId>
	<artifactId>commons-pool2</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2.配置SpringBoot的application.properties文件

因为SpringBoot2.x默认使用lettuce作为连接池,所以以下为lettuce的配置方式

sh 复制代码
# Redis配置
# spring.redis.database : Redis数据库索引(默认为0)
# spring.redis.host : Redis服务器地址
# spring.redis.port : Redis服务器连接端口
# spring.redis.password : Redis服务器连接密码(默认为空)
# spring.redis.timeout : 连接超时时间(毫秒)
# spring.redis.lettuce.pool.max-active : 连接池最大连接数(使用负值表示没有限制)
# spring.redis.lettuce.pool.max-idle : 连接池中的最大空闲连接
# spring.redis.lettuce.pool.max-wait : 连接池最大阻塞等待时间(使用负值表示没有限制)
# spring.redis.lettuce.pool.min-idle : 连接池中的最小空闲连接
# spring.redis.lettuce.shutdown-timeout : 连接池中的关闭超时时间
spring.redis.database=1
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=
spring.redis.timeout=100000
spring.redis.lettuce.pool.max-active=50
spring.redis.lettuce.pool.max-idle=300
spring.redis.lettuce.pool.max-wait=-1
spring.redis.lettuce.pool.min-idle=10
spring.redis.lettuce.shutdown-timeout=100000

3.编写Controller测试Redis缓存数据

新增RedisController.java

java 复制代码
package org.xujun.springboot.controller;

import javax.annotation.Resource;

import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class RedisController {

    @Resource
    private StringRedisTemplate stringRedisTemplate;

    @GetMapping("redis")
    public String redis() {
        String key = "redis";
        String data = "redis-data";
        // 保存数据
        stringRedisTemplate.opsForValue().set(key, data);
        // 获取数据
        String getData = stringRedisTemplate.opsForValue().get(key);
        System.out.println(data.equals(getData));
        // 删除数据
        Boolean delete = stringRedisTemplate.delete(key);
        System.out.println(delete);
        return "suc";
    }

}

4.测试结果

运行项目,并且访问[http://127.0.0.1:8080/redis]。结果如下图所示

总结:本文章仅仅做了SpringBoot整合Redis,然后做了和Redis缓存测试。并未去探索Redis的高级功能。但是后期会陆续推出Redis的系列文章,在该系列中会详细讲解Redis

优秀的个人博客,低调大师

微信关注我们

本文章为原创内容,如需转载请注明来源!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池

Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池

前言 什么是数据库连接池? 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。 数据库连接池对比 Druid: Druid是Java语言中最好的数据库连接池,Druid能够提供强大的监控和扩展功能,是一个可用于大数据实时查询和分析的高容错、高性能的开源分布式系统,尤其是当发生代码部署、机器故障以及其他产品系统遇到宕机等情况时,Druid仍能够保持100%正常运行。主要特色:为分析监控设计;快速的交互式查询;...

SpringBoot2配置默认Tomcat设置,开启更多高级功能

SpringBoot2配置默认Tomcat设置,开启更多高级功能

前言 什么是Tomcat Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。 说明 因为SpringBoot的web模块内置了Tomcat...

相关文章

发表评论

评论列表

共 1 条评论
优秀的个人博客,低调大师

斌哥哥

2020-04-16

军哥,max-idle比max-active大是不是有问题

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。