返回顶部
首页 > 资讯 > 精选 >SpringBoot整合RedisTemplate如何实现缓存信息监控
  • 519
分享到

SpringBoot整合RedisTemplate如何实现缓存信息监控

2023-06-28 23:06:00 519人浏览 泡泡鱼
摘要

这篇文章给大家分享的是有关SpringBoot整合RedisTemplate如何实现缓存信息监控的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。springBoot 整合 Redis 数据库实现数据缓存的本质是整合

这篇文章给大家分享的是有关SpringBoot整合RedisTemplate如何实现缓存信息监控的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

springBoot 整合 Redis 数据库实现数据缓存的本质是整合 Redis 数据库,通过对需要“缓存”的数据存入 Redis 数据库中,下次使用时先从 Redis 中获取,Redis 中没有再从数据库中获取,这样就实现了 Redis 做数据缓存。 

按照惯例,下面一步一步的实现 Springboot 整合 Redis 来存储数据,读取数据。

项目添加依赖首页第一步还是在项目添加 Redis 的环境, Jedis。

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

添加redis的参数

spring: ### Redis Configuration  redis:     pool:       max-idle: 10      min-idle: 5      max-total: 20    hostName: 127.0.0.1    port: 6379

编写一个 RedisConfig 注册到 Spring 容器

package com.config;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.serializer.StringRedisSerializer;import redis.clients.jedis.JedisPoolConfig;@Configurationpublic class RedisConfig {@Bean@ConfigurationProperties(prefix="spring.redis.pool")public JedisPoolConfig jedisPoolConfig() {JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();return jedisPoolConfig;}@Bean@ConfigurationProperties(prefix="spring.redis")public JedisConnectionFactory jedisConnectionFactory(JedisPoolConfig jedisPoolConfig) {JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory(jedisPoolConfig);return jedisConnectionFactory;}@Beanpublic RedisTemplate<String, Object> redisTemplate(JedisConnectionFactory jedisConnectionFactory) {RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();// 关联redisTemplate.setConnectionFactory(jedisConnectionFactory);// 为 key 设置序列化器redisTemplate.seTKEySerializer(new StringRedisSerializer());// 为 value 设置序列化器redisTemplate.setValueSerializer(new StringRedisSerializer());return redisTemplate;}}

使用redisTemplate

package com.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.serializer.Jackson2JSONRedisSerializer;import org.springframework.data.redis.serializer.jdkSerializationRedisSerializer;import org.springframework.WEB.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import com.bean.Users;@RestControllerpublic class RedisController {@Autowiredprivate RedisTemplate<String, Object> redisTemplate;@RequestMapping("/redishandle")public String redishandle() {//添加字符串redisTemplate.opsForValue().set("author", "欧阳");//获取字符串String value = (String)redisTemplate.opsForValue().get("author");System.out.println("author = " + value);//添加对象//重新设置序列化器redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());redisTemplate.opsForValue().set("users", new Users("1" , "张三"));//获取对象//重新设置序列化器redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());Users user = (Users)redisTemplate.opsForValue().get("users");System.out.println(user);//以json格式存储对象//重新设置序列化器redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Users.class));redisTemplate.opsForValue().set("usersJson", new Users("2" , "李四"));//以json格式获取对象//重新设置序列化器redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Users.class));user = (Users)redisTemplate.opsForValue().get("usersJson");System.out.println(user);return "home";}}

项目实战中redisTemplate的使用

package com.shiwen.lujing.service.impl;import java.util.List;import java.util.concurrent.TimeUnit;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.core.ValueOperations;import org.springframework.stereotype.Service;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.ObjectMapper;import com.shiwen.lujing.dao.mapper.WellAreaDao;import com.shiwen.lujing.service.WellAreaService;import com.shiwen.lujing.util.RedisConstants;@Servicepublic class WellAreaServiceImpl implements WellAreaService {@Autowiredprivate WellAreaDao wellAreaDao;@Autowiredprivate RedisTemplate<String, String> stringRedisTemplate;@Overridepublic String getAll() throws JsonProcessingException {//redis中key是字符串ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue();//通过key获取redis中的数据String wellArea = opsForValue.get(RedisConstants.REDIS_KEY_WELL_AREA);//如果没有去查数据库if (wellArea == null) {List<String> wellAreaList = wellAreaDao.getAll();wellArea = new ObjectMapper().writeValueAsString(wellAreaList);//将查出来的数据存储在redis中opsForValue.set(RedisConstants.REDIS_KEY_WELL_AREA, wellArea, RedisConstants.REDIS_TIMEOUT_1, TimeUnit.DAYS);            // set(K key, V value, long timeout, TimeUnit unit)            //timeout:过期时间;  unit:时间单位              //使用:redisTemplate.opsForValue().set("name","tom",10, TimeUnit.SECONDS);            //redisTemplate.opsForValue().get("name")由于设置的是10秒失效,十秒之内查询有结            //果,十秒之后返回为null }return wellArea;}}

redis中使用的key

package com.shiwen.lujing.util;public interface RedisConstants {String REDIS_KEY_JING_SHOU_ZI = "JING-SHOU-ZI";String REDIS_KEY_WELL_AREA = "WELL-AREA";long REDIS_TIMEOUT_1 = 1L;}

补充:SpringBoot整合RedisTemplate实现缓存信息监控

CacheController接口代码

@RestController@RequestMapping("/monitor/cache")public class CacheController{    @Autowired    private RedisTemplate<String, String> redisTemplate;     @PreAuthorize("@ss.hasPermi('monitor:cache:list')")// 自定义权限注解    @GetMapping()    public ajaxResult getInfo() throws Exception    {        // 获取redis缓存完整信息        //Properties info = redisTemplate.getRequiredConnectionFactory().getConnection().info();        Properties info = (Properties) redisTemplate.execute((RedisCallback<Object>) connection -> connection.info());        // 获取redis缓存命令统计信息        //Properties commandStats = redisTemplate.getRequiredConnectionFactory().getConnection().info("commandstats");        Properties commandStats = (Properties) redisTemplate.execute((RedisCallback<Object>) connection -> connection.info("commandstats"));        // 获取redis缓存中可用键Key的总数        //Long dbSize = redisTemplate.getRequiredConnectionFactory().getConnection().dbSize();        Object dbSize = redisTemplate.execute((RedisCallback<Object>) connection -> connection.dbSize());        Map<String, Object> result = new HashMap<>(3);        result.put("info", info);        result.put("dbSize", dbSize);        List<Map<String, String>> pieList = new ArrayList<>();        commandStats.stringPropertyNames().forEach(key -> {            Map<String, String> data = new HashMap<>(2);            String property = commandStats.getProperty(key);            data.put("name", StringUtils.removeStart(key, "cmdstat_"));            data.put("value", StringUtils.substringBetween(property, "calls=", ",usec"));            pieList.add(data);        });        result.put("commandStats", pieList);        return AjaxResult.success(result);    }}

感谢各位的阅读!关于“SpringBoot整合RedisTemplate如何实现缓存信息监控”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: SpringBoot整合RedisTemplate如何实现缓存信息监控

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

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

猜你喜欢
  • SpringBoot整合RedisTemplate如何实现缓存信息监控
    这篇文章给大家分享的是有关SpringBoot整合RedisTemplate如何实现缓存信息监控的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。SpringBoot 整合 Redis 数据库实现数据缓存的本质是整合...
    99+
    2023-06-28
  • SpringBoot整合RedisTemplate实现缓存信息监控的步骤
    SpringBoot 整合 Redis 数据库实现数据缓存的本质是整合 Redis 数据库,通过对需要“缓存”的数据存入 Redis 数据库中,下次使用时先从...
    99+
    2024-04-02
  • SpringBoot整合SpringBoot-Admin实现监控应用功能
    目录搭建Admin Server引入依赖Admin Server启动类application.yml配置测试搭建Admin Client引入依赖application.yml配置存在...
    99+
    2023-05-20
    SpringBoot整合SpringBoot-Admin SpringBoot Admin监控应用
  • springboot整合单机缓存ehcache的实现
    区别于redis的分布式缓存,ehcache是纯java进程内的单机缓存,根据不同的场景可选择使用,以下内容主要为springboot整合ehcache以及注意事项 添加pom引用 ...
    99+
    2023-02-13
    springboot单机缓存ehcache springboot ehcache
  • SpringBoot怎么整合Spring Cache实现Redis缓存
    今天小编给大家分享一下SpringBoot怎么整合Spring Cache实现Redis缓存的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下...
    99+
    2023-07-02
  • SpringBoot如何实现整合微信支付
    这篇文章将为大家详细讲解有关SpringBoot如何实现整合微信支付,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.准备工作1.1 数据库表这里涉及微信支付一共两个表:订单表支付记录表1.2 实体类数据...
    99+
    2023-06-22
  • SpringBoot详解整合Spring Boot Admin实现监控功能
    目录监控监控的意义可视化监控平台监控原理自定义监控指标监控 ​ 在说监控之前,需要回顾一下软件业的发展史。最早的软件完成一些非常简单的功能,代码不多,错误也少。随着软件功能的逐步完善...
    99+
    2024-04-02
  • SpringBoot详解整合Spring Cache实现Redis缓存流程
    目录1、简介2、常用注解2.1、@EnableCaching2.2、@Cacheable2.3、@CachePut2.4、@CacheEvict3、使用Redis当作缓存产品3.1、...
    99+
    2024-04-02
  • SpringBoot怎么整合Redis实现热点数据缓存
    本篇内容主要讲解“SpringBoot怎么整合Redis实现热点数据缓存”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot怎么整合Redis实现热点数据缓存”吧!我们以IDEA ...
    99+
    2023-07-05
  • SpringBoot详解如何整合Redis缓存验证码
    目录1、简介2、介绍3、前期配置3.1、坐标导入3.2、配置文件3.3、配置类4、Java操作Redis1、简介 Redis is an open source (BSD licen...
    99+
    2024-04-02
  • SpringBoot整合Druid实现数据库连接池和监控
    目录1、Druid的简介2、创建SpringBoot项目与数据表2.1 创建项目2.2 创建数据表3、Druid实现数据库连接池3.1 Druid的配置3.2 创建实体类(Entit...
    99+
    2024-04-02
  • SpringBoot整合Spring Boot Admin实现服务监控的方法
    目录1. Server端服务开发1.1. 引入核心依赖1.2. application.yml配置文件1.3. Security配置文件1.4. 主启动类2. Client端服务开发...
    99+
    2024-04-02
  • 详解SpringBoot如何实现整合微信登录
    目录1.准备工作1.1 获取微信登录凭证1.2 配置文件1.3 添加依赖1.4 创建读取公共常量的工具类1.5 HttpClient工具类2.实现微信登录2.1 具体流程2.2 生成...
    99+
    2024-04-02
  • SpringBoot如何整合RabbitMQ实现死信交换机
    本篇内容介绍了“SpringBoot如何整合RabbitMQ实现死信交换机”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!环境Windows1...
    99+
    2023-07-02
  • 详解SpringBoot整合RabbitMQ如何实现消息确认
    目录简介生产者消息确认介绍流程配置ConfirmCallbackReturnCallback注册ConfirmCallback和ReturnCallback消费者消息确认介绍手动确认...
    99+
    2024-04-02
  • SpringBoot整合jasypt实现敏感信息的加密详解
    目录一、简介二、导入依赖三、加密字段工具类四、application.yaml 配置五、启动类测试一、简介 在后端开发中有很多敏感信息,比如数据库用户名密码,第三方 Apikey,云...
    99+
    2024-04-02
  • Springboot整合mybatis开启二级缓存的实现示例
    目录前言mybatis 一级缓存和二级缓存的概念pom引入依赖application.properties 文件配置mapper.xml 文件配置cache-ref完整示例代码踩坑参...
    99+
    2024-04-02
  • SpringBoot怎么整合Redis实现高并发数据缓存
    这篇文章主要讲解了“SpringBoot怎么整合Redis实现高并发数据缓存”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot怎么整合Redis实现高并发数据缓存”吧!什么是...
    99+
    2023-07-05
  • SpringBoot中怎么整合Ehcache实现热点数据缓存
    本篇内容介绍了“SpringBoot中怎么整合Ehcache实现热点数据缓存”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、简介EhCac...
    99+
    2023-07-06
  • springboot整合EhCache实现单服务缓存的操作方法
    目录一、整合Spring Cache 与Ehcache二、缓存的使用方法三、缓存使用中的坑在Spring框架内我们首选Spring Cache作为缓存框架的门面,之所以说它是门面,是...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作