iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >springboot使用redis实现从配置到实战
  • 856
分享到

springboot使用redis实现从配置到实战

2024-04-02 19:04:59 856人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录概述准备工作使用概述 SpringBoot通常整合Redis,采用的是RedisTemplate的形式,除了这种形式以外,还有另外一种形式去整合,即采用spring支持的注解进

概述

SpringBoot通常整合Redis,采用的是RedisTemplate的形式,除了这种形式以外,还有另外一种形式去整合,即采用spring支持的注解进行访问缓存.

准备工作

pom.xml


<dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.7.3</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-redis</artifactId>
            <version>1.7.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-redis</artifactId>
            <version>RELEASE</version>
        </dependency>

application.properties


# REDIS (RedisProperties)
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=127.0.0.1
# Redis服务器连接端口
spring.redis.port=6379
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=0

Redis配置类


package cn.chenlove.config;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.annotation.CachinGConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

@Configuration
@EnableCaching
public class RedisConfig  extends CachingConfigurerSupport{
    @Value("${spring.redis.host}")
    private String host;

    @Value("${spring.redis.port}")
    private int port;

    @Value("${spring.redis.timeout}")
    private int timeout;

    @Value("${spring.redis.pool.max-idle}")
    private int maxIdle;

    @Value("${spring.redis.pool.max-wait}")
    private long maxWaitMillis;

    @Bean
    public JedisPool redisPoolFactory() {
        Logger.getLogger(getClass()).info("JedisPool注入成功!!");
        Logger.getLogger(getClass()).info("redis地址:" + host + ":" + port);
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxIdle(maxIdle);
        jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);

        JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout);

        return jedisPool;
    }
}

可以看出,我们这里主要配置了两个东西,cacheManager方法配置了一个缓存名称,它的名字叫做thisredis,当我们要在方法注解里面使用到它的时候,就要根据名称进行区分不同缓存.同时设置了缓
存的过期时间.redisTemplate则是比较常见的,我们设置了RedisTemplate,因此在代码里面,我们也可以通过@Autowired注入RedisTemplate来操作redis.

使用

接下来就是如何使用注解啦,这一步反而是最简单的.其实只用到了两个注解,@Cacheable和@CacheEvict.第一个注解代表从缓存中查询指定的key,如果有,从缓存中取,不再执行方法.如果没有则执
行方法,并且将方法的返回值和指定的key关联起来,放入到缓存中.而@CacheEvict则是从缓存中清除指定的key对应的数据.使用的代码如下:


//有参数
    @Cacheable(value="thisredis", key="'users_'+#id")
    public User findUser(Integer id) {
        User user = new User();
        user.setUsername("hlhdidi");
        user.setPassword("123");
        user.setUid(id.longValue());
        System.out.println("log4j2坏啦?");
        logger.info("输入user,用户名:{},密码:{}",user.getUsername(),user.getPassword());
        return user;
     }

      @CacheEvict(value="thisredis",   key="'users_'+#id",condition="#id!=1")
      public void delUser(Integer id) {
        // 删除user
           System.out.println("user删除");
       }

       //无参数
       @RequestMapping("/get")
    @Cacheable(value="thisredis")
    @ResponseBody
    public List<User> xx(){
        return userMapper.selectAll();
    }
    @RequestMapping("/get3")
    @CacheEvict(value="thisredis")
    @ResponseBody
    public String xx3(){
        return "ok";
    }

可以看出,我们用@Cacheable的value属性指定具体缓存,并通过key将其放入缓存中.这里key非常灵活,支持spring的el表达式,可以通过方法参数产生可变的key(见findUser方法),也可以通过其指定在
什么情况下,使用/不使用缓存(见delUser方法).

gitee码云:https://gitee.com/lyc96/projects

到此这篇关于springboot使用redis实现从配置到实战的文章就介绍到这了,更多相关springboot使用redis 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: springboot使用redis实现从配置到实战

本文链接: https://www.lsjlt.com/news/134003.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • springboot使用redis实现从配置到实战
    目录概述准备工作使用概述 springboot通常整合redis,采用的是RedisTemplate的形式,除了这种形式以外,还有另外一种形式去整合,即采用spring支持的注解进...
    99+
    2024-04-02
  • Redis主从配置和底层实现原理解析(实战记录)
    我们使用Redis的时候往往都是主从模式或者集群架构,不会使用单台Redis服务。 一、Redis主从配置实战 我们使用master节点写输入,然后将数据同步到slave节点,从节点...
    99+
    2024-04-02
  • springboot redis使用lettuce配置多数据源的实现
    目前项目上需要连接两个redis数据源,一个redis数据源是单机模式,一个redis数据源是分片集群模式,这里将具体配置列一下。 项目用的springboot版本为 &...
    99+
    2024-04-02
  • 使用springboot如何实现配置多个redis连接
    这篇文章将为大家详细讲解有关使用springboot如何实现配置多个redis连接,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、springboot nosql 简介Spring Dat...
    99+
    2023-05-31
    springboot redis
  • golanggrpc配置使用实战
    目录什么是PRC&GRPCGo gRPC 环境准备实战编写和调用什么是PRC&GRPC RPC是远程过程调用(Remote Procedure Call)的缩写形式,...
    99+
    2023-05-19
    golang grpc配置
  • SpringBoot Security从入门到实战示例教程
    目录前言入门测试接口增加依赖自定义配置配置密码加密方式配置AuthenticationManagerBuilder 认证用户、角色权限配置HttpSecurity Url访问权限自定...
    99+
    2024-04-02
  • PHP中使用Redis实现动态配置
    随着互联网技术的发展,Web应用程序的复杂度也不断增加,随之带来的是更多的配置选项。为了使应用程序具有更强的灵活性和可配置性,许多开发人员会使用动态配置的方式。在PHP应用程序中使用Redis存储和管理动态配置,是一种非常实用的方式。Red...
    99+
    2023-05-15
    PHP redis 动态配置
  • springboot + JPA 配置双数据源实战
    目录springboot + JPA 配置双数据源1、首先配置application.yml文件设置主从数据库2、使用配置类读取application.yml配置的两个数据源3、然后...
    99+
    2024-04-02
  • SpringBoot开发实战之自动配置
    在介绍SpringBoot的自动配置之前,先了解下注解@Import的使用,SpringBoot的@Enable*开头的注解底层依赖于@Import注解导入一些类,使用@Import...
    99+
    2024-04-02
  • 使用springboot怎么实现自动配置
    这篇文章将为大家详细讲解有关使用springboot怎么实现自动配置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。springboot是什么springboot一种全新的编程规范,其设计目的...
    99+
    2023-06-14
  • PHP Redis扩展实战指南:从入门到精通
    1、安装与配置 首先,您需要安装PHP Redis扩展。您可以使用PECL命令来安装它: pecl install redis 安装完成后,您需要在php.ini文件中启用Redis扩展。在php.ini文件中找到extension=r...
    99+
    2024-02-06
    PHP Redis 数据库 操作 示例
  • springboot集成redis哨兵主从的实现
    目录一、环境二、POM文件三、application.yml配置四、reidsTemplate配置五、单元测试(JUnit4)一、环境 spring boot 2.3.12.RELE...
    99+
    2024-04-02
  • Springboot如何使用Logback实现日志配置
    这篇文章主要讲解了“Springboot如何使用Logback实现日志配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Springboot如何使用Logback实现日志配置”吧!概述默认情...
    99+
    2023-07-04
  • Redis Sentinel实现高可用配置
    Redis Sentinel实现高可用配置?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、创建redis-sentinel_26379.co...
    99+
    2024-04-02
  • Centos7下Redis主从搭建配置的实现方法
    这篇文章将为大家详细讲解有关Centos7下Redis主从搭建配置的实现方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、环境介绍Redis—master ...
    99+
    2024-04-02
  • Nginx代理Redis哨兵主从配置怎么实现
    本篇内容介绍了“Nginx代理Redis哨兵主从配置怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、环境Nginx版本:1.21....
    99+
    2023-07-02
  • Tomcat使用https配置实战教程
    目录一、tomcat证书配置二、tomcat支持https配置三、tomcat强制使用https今天继续给大家介绍Linux运维相关知识,本文主要内容是Tomcat使用https配置...
    99+
    2024-04-02
  • Java Git 实战:从概念到应用
    概念 版本控制:Git 记录代码的更改历史,允许用户回滚到以前的版本。 分布式:每个开发人员都有本地仓库的副本,使协作更容易。 提交:一次更改用于将代码更改保存到本地仓库。 分支:允许在不影响主分支的情况下探索代码更改。 合并:将分支中...
    99+
    2024-04-02
  • SpringBoot集成Redis并实现主从架构的实践
    目录一、Windows环境下安装Redis设置键值对根据key获取value二、SpringBoot连接Redis(1)使用Jedis类直接连接Redis服务器(2)通过配置文件进行...
    99+
    2024-04-02
  • SpringBoot的HTTPS配置实现
    HTTPS 配置 由于HTTPS具有良好的安全性,在开发中得到了越来越广泛的应用,像微信公众号、小程序等的开发都要使用HTTPS来完成。对于个人开发者而言,一个HTTPS 证书的价格...
    99+
    2023-05-15
    SpringBoot HTTPS配置 SpringBoot HTTPS
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作