iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >为Java项目添加Redis缓存的方法
  • 239
分享到

为Java项目添加Redis缓存的方法

2024-04-02 19:04:59 239人浏览 泡泡鱼

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

摘要

Redis的安装 Redis一般有linux和windows两种安装方式,Windows的最高版本为3.2,Linux的最高版本为5.0,大家可以根据自己的需要添加 Linux 首先

Redis的安装

Redis一般有linuxwindows两种安装方式,Windows的最高版本为3.2,Linux的最高版本为5.0,大家可以根据自己的需要添加

Linux

首先在linux下安装Docker,在docker环境下安装redis5.0的镜像


docker pull redis:5.0

然后使用Docker命令启动Redis容器


docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-d redis:5.0 redis-server --appendonly yes

Windows

在redis官网下载windows版本的Redis
Redis下载链接

在这里插入图片描述

解压到指定目录

在这里插入图片描述

在当前地址栏输入cmd,或者用Win+Rd打开命令提示符,输入cmd,利用cd指令进入当前目录 执行redis的启动命令


redis-server.exe redis.windows.conf

在这里插入图片描述

默认的ip地址是127.0.0.1,默认端口号为6379

将Redis注册为服务的命令:


#注册服务
redis-server --service-install redis.windows.conf
#启动服务
redis-server --service-start
#停止服务
redis-server --service-stop
#删除服务
redis-server --service-uninstall

使用注解方式添加Redis缓存

spring cache

Spring cache是SpringBoot融合Redis作为缓存最简单的实现方式之一,我们无需关注spring具体操作redis的过程,只需要使用它提供的@Cacheable 、@CachePut 、@CacheEvict 、@EnableCaching等注解就可以实现缓存功能

基本注解 @EnableCaching

开启缓存功能,一般放在启动类上。

@Cacheable

使用该注解的方法当缓存存在时,会从缓存中获取数据而不执行方法,当缓存不存在时,会执行方法并把返回结果存入缓存中。一般使用在查询方法上,可以设置如下属性:

value:缓存名称(必填),指定缓存的命名空间;
key:用于设置在命名空间中的缓存key值,可以使用SpEL表达式定义;
unless:条件符合则不缓存;
condition:条件符合则缓存。

@CachePut

使用该注解的方法每次执行时都会把返回结果存入缓存中。一般使用在新增方法上,可以设置如下属性:

value:缓存名称(必填),指定缓存的命名空间;
key:用于设置在命名空间中的缓存key值,可以使用SpEL表达式定义;
unless:条件符合则不缓存;
condition:条件符合则缓存。

@CacheEvict

使用该注解的方法执行时会清空指定的缓存。一般使用在更新或删除方法上,可以设置如下属性:

value:缓存名称(必填),指定缓存的命名空间;
key:用于设置在命名空间中的缓存key值,可以使用SpEL表达式定义;
condition:条件符合则缓存。

项目实战

1.引入依赖

在pom.xml中引入redis对应依赖


<!-- redis-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>

2.配置Redis属性

修改配置文件application.yml,添加Redis的连接配置


spring:
	redis:
		host: 127.0.0.1 # Redis服务器地址(默认地址)
		database: 0 # Redis数据库索引(默认为0)
		port: 6379 # Redis服务器连接端口
		passWord: # Redis服务器连接密码(默认为空)
		timeout: 1000ms # 连接超时时间

3.在启动类上添加@EnableCaching注解

在这里插入图片描述

4.在ServiceImpl类中使用相关注解来实现缓存功能 查询(Cacheable)

在这里插入图片描述

修改/删除(CacheEvict)

在这里插入图片描述
在这里插入图片描述

新增(CachePut)

在这里插入图片描述

5.储存JSON格式数据

如果不对redis中数据格式进行设置,缓存的内容将类似乱码形式,我们可以通过给RedisTemplate设置jsON格式的序列化器,并通过配置RedisCacheConfiguration设置超时时间,在Redis中储存标准JSON数据,通过过期时间筛选不必要的缓存,节约空间

在config中新建BaseRedisConfig配置类


@Configuration
public class BaseRedisConfig {

    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisSerializer<Object> serializer = redisSerializer();
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        redisTemplate.seTKEySerializer(new StringRedisSerializer());
        redisTemplate.setValueSerializer(serializer);
        redisTemplate.setHashKeySerializer(new StringRedisSerializer());
        redisTemplate.setHashValueSerializer(serializer);
        redisTemplate.afterPropertiesSet();
        return redisTemplate;
    }

    @Bean
    public RedisSerializer<Object> redisSerializer() {
        //创建JSON序列化器
        Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<>(Object.class);
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        //必须设置,否则无法将JSON转化为对象,会转化成Map类型
        objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
        serializer.setObjectMapper(objectMapper);
        return serializer;
    }

    @Bean
    public RedisCacheManager redisCacheManager(RedisConnectionFactory redisConnectionFactory) {
        RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory);
        //设置Redis缓存有效期为1天
        RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
                .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer())).entryTtl(Duration.ofDays(1));
        return new RedisCacheManager(redisCacheWriter, redisCacheConfiguration);
    }


    @Bean
    public RedisService redisService() {
        return new RedisServiceImpl();
    }
}

6.测试Redis缓存是否成功

我们可以利用postman测试一下接口

在这里插入图片描述

再通过Redis Desktop Manager查看一下Redis数据库中是否已存入对应缓存数据

在这里插入图片描述

到此,最简单的Java项目引入Redis缓存已经完成

以上就是为Java项目添加Redis缓存的方法的详细内容,更多关于java项目添加redis缓存的资料请关注编程网其它相关文章!

--结束END--

本文标题: 为Java项目添加Redis缓存的方法

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

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

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

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

下载Word文档
猜你喜欢
  • 为Java项目添加Redis缓存的方法
    Redis的安装 Redis一般有Linux和Windows两种安装方式,Windows的最高版本为3.2,Linux的最高版本为5.0,大家可以根据自己的需要添加 Linux 首先...
    99+
    2024-04-02
  • 怎么为Java项目添加Redis缓存
    怎么为Java项目添加Redis缓存?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Linux首先在linux下安装docker,在docker环境下安装redis5.0的镜...
    99+
    2023-06-15
  • SpringBoot项目中使用redis缓存的方法步骤
    本文介绍了SpringBoot项目中使用redis缓存的方法步骤,分享给大家,具体如下:Spring Data Redis为我们封装了Redis客户端的各种操作,简化使用。 - 当Redis当做数据库或者消息队列来操作时,我们一般使用Red...
    99+
    2023-05-30
    spring boot redis
  • 如何在java项目中操作Redis缓存
    这篇文章给大家介绍如何在java项目中操作Redis缓存,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.导入必须的Jar包使用Java操作Redis需要两个必须的Jar包:jedis-2.5.1.jar 和 ...
    99+
    2023-05-31
    java redis
  • redis清缓存的方法
    这篇文章将为大家详细讲解有关redis清缓存的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.访问redis根目录    cd  /u...
    99+
    2024-04-02
  • 浅谈redis缓存在项目中的使用
    背景 Redis 是一个开源的内存数据结构存储系统。 可以作为数据库、缓存和消息中间件使用。 支持多种类型的数据结构。 Redis 内置了 复制(replication),LUA脚...
    99+
    2024-04-02
  • php项目无法清除redis缓存如何解决
    要清除 Redis 缓存,可以通过以下几种方法解决:1. 使用 Redis 的 FLUSHALL 命令清除所有缓存。这会删除 Red...
    99+
    2023-10-20
    php
  • ASP.NET缓存数据添加方法是什么
    这篇文章主要介绍“ASP.NET缓存数据添加方法是什么”,在日常操作中,相信很多人在ASP.NET缓存数据添加方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ASP.NET缓存数据添加方法是什么”的疑...
    99+
    2023-06-17
  • 清空redis缓存的方法
    这篇文章主要介绍了清空redis缓存的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。1.访问redis根目录    cd...
    99+
    2024-04-02
  • 云服务器部署项目缓存旧项目的处理方法
    1. 清理旧项目缓存 在部署新项目之前,首先需要清理旧项目的缓存。这可以通过以下几种方式来实现: 清理服务器上的缓存文件:在服务器上找到旧项目的缓存文件夹,并将其删除。这样可以确保新项目在部署时不会受到旧项目缓存的影响。 清理数据库缓存...
    99+
    2023-10-27
    项目 缓存 服务器
  • tomcat清除项目缓存的方法有哪些
    Tomcat清除项目缓存的方法有以下几种:1. 重启Tomcat服务器:这是最简单也是最常见的方法,通过重启Tomcat服务器可以清...
    99+
    2023-09-23
    tomcat
  • 利用Redis进行数据缓存的项目实践
    目录1. 引言2. 将信息添加到缓存的业务流程3. 实现代码3.1 代码实现(信息添加到缓存中)3.2 缓存更新策略3.3 实现主动更新4. 缓存穿透4.1 解决缓存穿透(使用空对象...
    99+
    2024-04-02
  • 缓存是Java项目的瓶颈吗?NPM缓存如何应对?
    随着网络应用的发展,缓存机制在提高系统性能和优化用户体验方面发挥着至关重要的作用。而在Java项目中,缓存机制同样扮演着一个重要的角色。但是,缓存究竟是否是Java项目的瓶颈呢?如何应对NPM缓存问题呢?本文将为大家进行探讨。 一、缓存是...
    99+
    2023-08-30
    leetcode npm 缓存
  • vite项目添加eslint prettier及husky方法实例
    目录1. 初始化vite项目2. 添加eslint3. 添加 prettier4. 添加 husky和lint-staged5. 配置commitlint1. 初始化vite项目 n...
    99+
    2024-04-02
  • vue项目npmrunbuild打包项目防止浏览器缓存的操作方法
    在vue.config.js配置 推荐方法1: const Timestamp = new Date().getTime() module.exports = { .......
    99+
    2022-11-13
    vue npm run build 打包项目 vue打包项目浏览器缓存
  • java SpringBoot项目整合Redis的方法是什么
    这篇文章主要介绍了java SpringBoot项目整合Redis的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java SpringBoot项目整合Redis的方法是什么文章都会有所收获,下面我们...
    99+
    2023-07-05
  • Java项目中添加外部jar包的方式有哪些
    本篇内容主要讲解“Java项目中添加外部jar包的方式有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java项目中添加外部jar包的方式有哪些”吧!一、第一种方式在idea上点击file-...
    99+
    2023-07-05
  • 在项目中使用redis做缓存的一些思路
    目录在项目中redis做缓存的一些思路首先,缓存的对象有三种本人走过的一些弯路为什么没用Redis做缓存使用Table作本地缓存使用Redis作缓存让我们来思考一下下面几个问题那么使...
    99+
    2024-04-02
  • PHP+Redis缓存的方法是什么
    本篇内容主要讲解“PHP+Redis缓存的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP+Redis缓存的方法是什么”吧!有否想过PHP使用redis作为缓存时,如何能:前后台模...
    99+
    2023-06-26
  • redis用在项目上的方法
    这篇文章给大家分享的是有关redis用在项目上的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。想起自己以前想把Redis整合到JavaWeb项目中,网上搜了很多教程都不全面,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作