现在我们数据每次都是从数据库读取,这样当网站访问量达到高峰时段,对数据库压力很大,并且影响执行效率。我们需要将这部分广告数据缓存起来。

查询的时候走缓存,增删改的时候同步更新缓存

查询的时候:先查redis,根据key去查

1.如果redis有,直接返回结果集

2.如果redis没有,这时去数据库查询,返回结果集,并且同步地把缓存数据放到redis中

3.如果redis没有,数据库也没有,把key-null存到redis中

问题1:不应该同步地把数据保存到缓存中,异步把数据放到缓存中,使用mq发消息

问题2:查询的key永远没有value,每次的请求都会打到数据库,因为redis中没有缓存结果数据,会造成缓存的穿透,缓存value为空的数据

问题3:如果恶意访问,故意制造一些数据库没有的数据进行攻击,如果说访问持续缓慢,需要降低被恶意程序盯上的几率,缓存的降级,不管什么请求,短时间,高并发,全部返回null,很可能是一个爬虫程序

问题4:短信验证码,报警,请了武汉本地安全团队进行一些反制措施,最终找到这个人,短信轰炸机,调用别的公司的短信接口

在发短信之前,可以使用随机验证码,请滑动图块

redis缓存数据的流程相关推荐

  1. 基于 abp vNext 和 .NET Core 开发博客项目 - 使用Redis缓存数据

    基于 abp vNext 和 .NET Core 开发博客项目 - 使用Redis缓存数据 转载于:https://github.com/Meowv/Blog 在日志记录中使用的静态方法有人指出写法不 ...

  2. Java项目使用Redis缓存数据

    Java项目使用Redis缓存数据 一.Redis的下载安装 1.下载gcc编译器 yum install gcc-c++ 安装完成后检查是否安装成功,查看版本 gcc --version 2.使用w ...

  3. 05-使用Redis缓存数据,管理员相关数据表

    文章目录 使用Redis缓存数据 管理员相关数据表 使用Redis缓存数据 使用Redis可以提高查询效率,一定程度上可以减轻数据库服务器的压力,从而保护了数据库. 通常,应用Redis的场景有: 高 ...

  4. redis 缓存数据_Redis 缓存数据方案对比:常规 VS 高并发服务器

    1 Redis 是什么 Redis 是一种开源的非关系型数据库.起源于负载较大时,当前关系型数据库无法承载的情况. 到目前为止,Redis 可以用作数据库.缓存.消息处理.Redis 可以存储键和5种 ...

  5. 十行代码将Redis缓存数据进行分页提取与展示

    预览 准备数据 从以前的项目中提取一些数据直接导入MySQL,原先数据库为sqlite3,先将数据转为xls文件格式. 然后使用MySQL可视化工具Navicat for MySQL新建一个数据库,新 ...

  6. 积分签到mysql_简易积分签到功能java代码实现实现Redis缓存数据

    -------需求说明 ---- 需求分析 积分签到处于app页面"我的",用户会频繁的来回切换,如果将数据全部存储到数据库中然后去数据库中做查询,所以这里我才用的Redis缓存的 ...

  7. spring boot使用redis缓存数据与自动清除

    在spring boot项目中使用缓存很方便,有如下两种使用场景: 直接操作RedisTemplate缓存数据 在方法上加@Cacheable注解来缓存数据 方法1适用于缓存session.token ...

  8. redis缓存数据表

    直观上看,数据库中的数据都是按表存储的:更微观地看,这些表都是按行存储的.每执行一 次select查询,数据库都会返回一个结果集,这个结果集由若干行组成.所以,一个自然而然 的想法就是在Redis中找 ...

  9. redis缓存数据清理

    redis是固定的存储空间 通过 CONFIG SET maxmemory 4gb 命令来设置大小(此处设为4gb) 那么当4gb存储满的时候就需要考虑清除一些无用或过期数据释放空间 redis的过期 ...

最新文章

  1. Swift 闭包表达式
  2. (转载)IE 浏览器的创新
  3. nginx 做负载均衡
  4. python的第三方库-Python第三方库安装和卸载
  5. animate中使用HTML5,animate.css怎么使用?
  6. linux进程泄露命令明文参数,sshpass 使Linux可以明文参数输入SSH密码(示例代码)
  7. Linux echo print命令,linux常用命令-echo/printf/file
  8. Java线程池—ThreadPoolExecutor
  9. JavaScript 代码的加入
  10. jquey控制元素滚动条,外层div滚动,内层顶部div固定不动
  11. opencv 图像去雾
  12. matlab实现匹配滤波器实验报告,匹配滤波器的仿真实验报告
  13. Revit二次开发——导出OBJ格式插件
  14. 打游戏 cpu占用率多少是正常的_游戏玩家的CPU选择
  15. 二维码是什么?java生成二维码
  16. 软件开发生命周期及开发模型
  17. Typora + PicGo + 七牛云图床
  18. OpenSIPS实战(八):修改sip消息-使用lumps system
  19. 浅谈大数据风控平台的功能需求
  20. [转贴]八岁女童墓志铭:我来过,我很乖~~~~~ (是个人就流泪)

热门文章

  1. 第四课-Log的使用
  2. hadoop面试题答案
  3. Android屏幕适配和文字屏幕适配
  4. IT项目管理之脸皮厚大实话
  5. Redis异步消息队列
  6. 我是如何开发一个项目的
  7. RabbitMQ pull与push的区别
  8. ./configure --prefix
  9. 查看文件大小du -sh ./ ll -h
  10. 那些公司用计算机仪表电缆,计算机及仪表用电缆技术