iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SpringBoot如何实现redis缓存菜单列表
  • 155
分享到

SpringBoot如何实现redis缓存菜单列表

2023-06-28 06:06:23 155人浏览 薄情痞子
摘要

这篇文章主要为大家展示了“SpringBoot如何实现redis缓存菜单列表”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“springBoot如何实现Redis缓存菜单列表”这篇文章吧。因为系统

这篇文章主要为大家展示了“SpringBoot如何实现redis缓存菜单列表”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“springBoot如何实现Redis缓存菜单列表”这篇文章吧。

因为系统的菜单列表是不轻易改变的,所以不需要在每次请求的时候都去查询数据库,所以,在第一次根据用户id请求到菜单列表的时候,可以把菜单列表的数据缓存在redis里,在第二次请求菜单列表的时候,可以直接在redis缓存里面获取数据,从而减少对数据库的操作,提升性能!首先,我们要下载redis到本地,然后在cmd终端打开redis的src目录,然后运行redis-server即可开启redis本地服务(Mac),开启了redis服务后,就要在项目中配置相关的redis的代码了,首先在pom.xml中导入我们需要的包:

<!--  spring data redis依赖--><dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-data-redis</artifactId>  <version>2.5.1</version></dependency><!--      commons-pool2对象池依赖--><dependency>  <groupId>org.apache.commons</groupId>  <artifactId>commons-pool2</artifactId>  <version>2.9.0</version></dependency>

然后在config文件下创建ReidsConfig配置类文件:

@Configurationpublic class RedisConfig {    @Bean    public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){        RedisTemplate<String,Object> redisTemplate=new RedisTemplate<>();        //String类型key序列器        redisTemplate.seTKEySerializer(new StringRedisSerializer());        //String类型value序列器        redisTemplate.setValueSerializer(new GenericJackson2JSONRedisSerializer());        //Hash类型key序列器        redisTemplate.setHashKeySerializer(new StringRedisSerializer());        //Hash类型value序列器        redisTemplate.setHashValueSerializer(new GenericJackson2jsonRedisSerializer());        redisTemplate.setConnectionFactory(redisConnectionFactory);        return redisTemplate;    }}

这个配置文件主要是对String类型和hash类型的key和value做序列化操作;
接下来就是使用redis了,在我们需要引入redis的根据用户id获取菜单列表接口的实现类中,判断下,如果菜单已经缓存在了redis中,则从redis中获取数据返回,否则去查询数据库获取数据:

@Servicepublic class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IMenuService {    @Autowired    private MenuMapper menuMapper;    @Autowired    private RedisTemplate<String,Object> redisTemplate;        @Override    public List<Menu> getMenuByAdminId() {        //getMenuByAdminId需要传用户id,这时候,要从security全局上下文中获取用户id,SecurityContextHolder.getContext().getAuthentication().getPrincipal()获取当前用户对象        Admin principal = (Admin) SecurityContextHolder.getContext().getAuthentication().getPrincipal();        //获取到用户id        Integer id = principal.getId();        ValueOperations<String, Object> valueOperations = redisTemplate.opsForValue();        List<Menu> menus=((List<Menu>) valueOperations.get("menu_" + id));//获取redis缓存中的菜单列表        if(CollectionUtils.isEmpty(menus)){//如果是空,则从数据库中获取            menus= menuMapper.getMenuByAdminId(id);            //将数据设置到redis中            valueOperations.set("menu_"+id,menus);        }        return menus;    }}

以上是“SpringBoot如何实现redis缓存菜单列表”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: SpringBoot如何实现redis缓存菜单列表

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

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

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

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

下载Word文档
猜你喜欢
  • SpringBoot如何实现redis缓存菜单列表
    这篇文章主要为大家展示了“SpringBoot如何实现redis缓存菜单列表”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SpringBoot如何实现redis缓存菜单列表”这篇文章吧。因为系统...
    99+
    2023-06-28
  • SpringBoot实现redis缓存菜单列表
    因为系统的菜单列表是不轻易改变的,所以不需要在每次请求的时候都去查询数据库,所以,在第一次根据用户id请求到菜单列表的时候,可以把菜单列表的数据缓存在redis里,在第二次请求菜单列...
    99+
    2024-04-02
  • vue如何实现列表页缓存
    这篇文章主要介绍了vue如何实现列表页缓存的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue如何实现列表页缓存文章都会有所收获,下面我们一起来看看吧。提了一个需求,希望公众号内的商城能够像app一样,从商品详...
    99+
    2023-07-04
  • redis缓存对象如何实现序列化
    Redis缓存对象的序列化可以使用以下方法实现:1. 使用Redis自带的序列化机制:Redis提供了几种默认的序列化方式,包括ra...
    99+
    2023-09-06
    redis
  • SpringBoot自定义Redis实现缓存序列化详解
    目录1、自定义RedisTemplate1.1、Redis API默认序列化机制1.2、自定义RedisTemplate序列化机制1.3、效果测试2、自定义RedisCacheMan...
    99+
    2024-04-02
  • SpringBoot怎么自定义Redis实现缓存序列化
    本篇内容主要讲解“SpringBoot怎么自定义Redis实现缓存序列化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot怎么自定义Redis实现缓存序列化”吧!1、自定义Red...
    99+
    2023-07-02
  • SpringBoot+SpringCache实现两级缓存(Redis+Caffeine)
    1. 缓存、两级缓存 1.1 内容说明 Spring cache:主要包含spring cache定义的接口方法说明和注解中的属性说明 springboot+spring cache...
    99+
    2024-04-02
  • vue中keep-alive如何实现列表页缓存
    小编给大家分享一下vue中keep-alive如何实现列表页缓存,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!需求:商品列表页面...
    99+
    2024-04-02
  • Html下拉列表菜单与跳转菜单怎么实现
    这篇“Html下拉列表菜单与跳转菜单怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“...
    99+
    2024-04-02
  • SpringBoot使用Redis实现分布式缓存
    目录springboot使用Redis实现分布式缓存Redis实现主从复制Redis集群的构建 springboot使用Redis实现分布式缓存 1、环境构建 ​ 1.1 ...
    99+
    2023-05-14
    Java Springboot使用Redis分布式缓存 Redis分布式缓存 Springboot分布式缓存
  • 详解SpringBoot如何使用Redis和Redis缓存
    目录一、配置环境二、Redis的基本操作三、使用redis作缓存一、配置环境 首先,先创建一个SpringBoot项目,并且导入Redis依赖,使用Jedis进行连接测试。 本人的R...
    99+
    2024-04-02
  • SpringBoot怎么整合Spring Cache实现Redis缓存
    今天小编给大家分享一下SpringBoot怎么整合Spring Cache实现Redis缓存的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下...
    99+
    2023-07-02
  • springboot整合单机缓存ehcache的实现
    区别于redis的分布式缓存,ehcache是纯java进程内的单机缓存,根据不同的场景可选择使用,以下内容主要为springboot整合ehcache以及注意事项 添加pom引用 ...
    99+
    2023-02-13
    springboot单机缓存ehcache springboot ehcache
  • 小程序实现下拉列表框菜单
    本文实例为大家分享了小程序实现下拉列表框菜单的具体代码,供大家参考,具体内容如下 <view class='top'>   <view class='top-tex...
    99+
    2024-04-02
  • Android如何实现底部缓慢弹出菜单
    这篇文章主要介绍了Android如何实现底部缓慢弹出菜单,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。项目要求要做一个从底部缓慢弹出一个Button Menu 开始编码: M...
    99+
    2023-05-30
    android
  • 如何实现Redis的LRU缓存机制
    这篇文章给大家分享的是有关如何实现Redis的LRU缓存机制的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言最近在逛博客的时候看到了有关Redis方面的面试题,其中提到了Redis在内存达到最大限制的时候会使用...
    99+
    2023-06-14
  • 搭建单机Redis缓存服务的实现
    目录1.安装 gcc2.下载Redis 安装包3.解压下载的redis-5.0.14.tar.gz文件4.查看解压文件情况5.进入解压的redis-5.0.14目录下,编译和安装6.查看安装后的redis目录7.进入re...
    99+
    2023-04-10
    搭建Redis缓存 Redis缓存
  • SpringBoot集成Redis数据库,实现缓存管理
    目录一、Redis简介  二、Spring2.0集成Redis  1、核心依赖2、配置文件3、简单测试案例4、自定义序列化配置5、序列化测试三、源代码地址&nbs...
    99+
    2024-04-02
  • 浅谈SpringBoot集成Redis实现缓存处理(Spring AOP实现)
    第一章 需求分析计划在Team的开源项目里加入Redis实现缓存处理,因为业务功能已经实现了一部分,通过写Redis工具类,然后引用,改动量较大,而且不可以实现解耦合,所以想到了Spring框架的AOP(面向切面编程)。开源项目:https...
    99+
    2023-05-30
    springboot redis 缓存
  • SpringBoot 如何实现自定义Redis序列化
    目录问题环境入口点实现自定义序列化小结问题 在使用RedisTemplate存储对象时,如果采用JDK默认的序列化方式,数据会出现许多编码字符,辨析度不高。比如一个空的User对象,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作