Redis、Spring Cache 、HttpClient基础
Redis
基于内存的key-value的结构数据库,读写性能高,常用于存储热点数据(短时间大量访问)
MySQL则是基于磁盘的二维表结构的数据库。
Redis的使用
- Redis中没有用户的概念,只有密码
- 不同数据库中的数据隔离,初始划分了16个数据库
- key为string类型,value有五种数据类型:String、hash(类比 hashmap)、list(类比Linkedlist)、set(类比hashset)、sorted set/zset(有序)
Java中使用Redis
- 导入坐标
- 配置Redis数据源(host、port、password、DB(名称))
- 编写配置类:通过配置类创建RedisTemplate对象
- 通过RedisTemplate对象操作Redis
注意事项
- java中的String != Redis中的String
- Spring框架中的Spring Data Redis将java对象序列化为Redis中的String再存储,所以通常我们要设置序列化器,在配置类中
应用
菜品数据在数据库中短时间大量用户访问 => 数据库过载,图片加载过慢 => 引入Redis解决,商品数据用Redis存储在缓存中
响应时间的瓶颈大多在DB查询
引入Redis后出现的问题:
- 数据不一致:DB数据库中数据修改了,但缓存中的数据没变。
解决方案:数据库数据变动 => 清理缓存 - 用户端查询与管理端修改数据同时来,他们是一个线程吗?//TODO
结果
菜品查询速度:40ms => 10ms
Spring Cache 缓存框架
目的:简化缓存代码,用注解来实现缓存的增删。
Spring Cache 是抽象的接口,他具体的实现有Redis、Caffeine、EHCache
使用
- 导入坐标
- 导入Redis Java客户端(告诉Spring Cache用哪个实现)
常用注解
- @Enable Caching:标注在启动类上,开启缓存注解功能
- @Cacheable:标注在方法上,方法执行前查询缓存数据,有则取,无则查DB后再方
- @CachePut:将方法返回值放入缓存(只放)
- @CacheEvict:删除缓存
HttpClient
HttpClient:用于服务器端(Java后端)发生http请求
使用步骤:
- 创建HttpClient对象
- 创建Http请求对象(put or post)
- 调用HttpClient中的execute方法发送请求
Tips
在设计数据库表时,常常设计一些冗余字段(不易更改)来提高查询速度,减少多表联查。
Redis、Spring Cache 、HttpClient基础的更多相关文章
- SpringBoot集成redis + spring cache
Spring Cache集成redis的运行原理: Spring缓存抽象模块通过CacheManager来创建.管理实际缓存组件,当SpringBoot应用程序引入spring-boot-starte ...
- Spring Boot(八)集成Spring Cache 和 Redis
在Spring Boot中添加spring-boot-starter-data-redis依赖: <dependency> <groupId>org.springframewo ...
- Spring Boot (24) 使用Spring Cache集成Redis
Spring 3.1引入了基于注解(annotation)的缓存(cache)技术,它本质不是一个具体的缓存实现方案,而是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的个助攻annotatio ...
- 【快学SpringBoot】Spring Cache+Redis实现高可用缓存解决方案
前言 之前已经写过一篇文章介绍SpringBoot整合Spring Cache,SpringBoot默认使用的是ConcurrentMapCacheManager,在实际项目中,我们需要一个高可用的. ...
- SpringBoot 结合 Spring Cache 操作 Redis 实现数据缓存
系统环境: Redis 版本:5.0.7 SpringBoot 版本:2.2.2.RELEASE 参考地址: Redus 官方网址:https://redis.io/ 博文示例项目 Github 地址 ...
- Spring Cache For Redis
一.概述 缓存(Caching)可以存储经常会用到的信息,这样每次需要的时候,这些信息都是立即可用的. 常用的缓存数据库: Redis 使用内存存储(in-memory)的非关系数据库,字符串.列 ...
- 【Spring】17、spring cache 与redis缓存整合
spring cache,基本能够满足一般应用对缓存的需求,但现实总是很复杂,当你的用户量上去或者性能跟不上,总需要进行扩展,这个时候你或许对其提供的内存缓存不满意了,因为其不支持高可用性,也不具备持 ...
- 基于Redis的Spring cache 缓存介绍
目录 Cache API及默认提供的实现 demo 依赖包安装 定义实体类.服务类和相关配置文件 Cache注解 启用Cache注解 @CachePut @CacheEvict @Cacheable ...
- JAVA 框架 Spring Cache For Redis.
一.概述 缓存(Caching)可以存储经常会用到的信息,这样每次需要的时候,这些信息都是立即可用的. 常用的缓存数据库: Redis 使用内存存储(in-memory)的非关系数据库,字符串.列 ...
- springboot整合spring @Cache和Redis
转载请注明出处:https://www.cnblogs.com/wenjunwei/p/10779450.html spring基于注解的缓存 对于缓存声明,spring的缓存提供了一组java注解: ...
随机推荐
- 配置jenkins的shell自动打包的脚本
#!/bin/bash#服务名称SERVER_NAME=jenkins-test# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomca ...
- Mysql数据库常用操作和Mysql大数据高效迁移方案
1.数据迁移: 1.数据量较少时可使用mysqldump和mysql命令导出和导入 # 导出指定数据库系统 mysqldump -u _username -p _dbname > _sqlfil ...
- vscode配置xdebug断点调试thinkphp
vscode配置xdebug断点调试thinkphp其实和配置其他php框架的断点调试一样,步骤如下: 下载xdebug,重命名为php_xdebug.dll并移动到php.ini目录: (不知道下载 ...
- 工具 | StarCodeSecurity
0x00 简介 StarCodeSecurity是一款图形化的代码审计工具. 下载地址: StarCodeSecurity下载:StarCodeSecurity下载 0x01 功能说明 支持对规则进行 ...
- 【HUST】网安|计算机网络实验|实验三 华为ENSP配置
我没有配置无线AP和AC,使用静态路由. 拓扑图文件链接:Gitee传送门. 在安装了ensp的情况下,解压即可使用. 1. 实验检查要求 2. 实验结果 2.1 我的拓扑图 2.2 我的IP地址划分 ...
- N+1查询:数据库性能的隐形杀手与终极拯救指南
title: N+1查询:数据库性能的隐形杀手与终极拯救指南 date: 2025/05/06 00:16:30 updated: 2025/05/06 00:16:30 author: cmdrag ...
- Web前端入门第 45 问:CSS 变量 var() 轻松实现主题换肤功能
HELLO,这里是大熊的前端开发笔记. 曾经主题切换功能可以作为软件中亮眼的卖点存在,毕竟那时候要实现换肤可不容易,一套主题一套样式,这代码的重复率嗖嗖嗖的就涨上去了~~当然也可以借助 CSS 预编译 ...
- 时间工具类之“Calendar时间类的函数用法”
一.时间工具类之"Calendar时间类的函数用法" // 获取当前时间 Calendar cal = Calendar.getInstance(); // start是Date时 ...
- 仓颉开发语言入门教程:常见UI组件介绍和一些问题踩坑
幽蓝君发现一个问题,仓颉开发语言距离发布马上一年了,一些知名App已经使用仓颉开发了许多功能,但是网络上关于仓颉开发语言的教程少之又少,系统性的教程更是没有,仓颉官网的文档也远远不如ArkTS详尽. ...
- LeetCode难度、面试频率、数据结构、算法一览表
Fightingヾ(๑╹◡╹)ノ" ID Question Diff(1~5) Freq(1~5) Data Structure Algorithms 1 Two Sum 2 5 arr ...