关于redis的几件小事(一)redis的使用目的与问题

蜡笔小新v 2021-07-20 04:14:18
redis 大数据技术


1.redis是用来干嘛的?

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.

通过上面redis官网的说明可以看出,redis是一个可以对内存数据结构进行存储的东西,它可以用作数据库、缓存和消息代理。它支持数据结构,如字符串,散列,列表,集合,带有范围查询的排序集,位图,超级日志,具有半径查询和流的地理空间索引。Redis具有内置复制,Lua脚本,LRU驱逐,事务和不同级别的磁盘持久性,并通过Redis Sentinel提供高可用性并使用Redis Cluster自动分区。在项目中主要用来用作数据的缓存,将数据缓存在redis中,减轻对底层数据库的访问压力,获得更高的并发和更快的请求响应速度。2.在项目中如何使用?我们知道,项目中的数据一般情况下都是存在于数据库当中的,而且数据库的并发性能不是特别高,如果同时接收到大量的请求,数据库可能就会崩掉,而且sql查询会消耗一定的时间,增加请求的响应时间,所以不用缓存会出现系统无法支撑大量的并发情况,请求响应时间会变长等问题。如果我们在第一次访问某个数据的时候,比如根据一个订单id获取订单的详细信息,将这条数据再返回的时候,也放到缓存里面去,那么下次就可以直接在缓存里面返回数据,不必去查询数据库,这样就可以减轻数据库的访问压力,而且缓存在内存中,势必要比直接访问数据库的速度要快很多,这样也就减小了请求的响应时间,redis在项目中就主要使用来解决数据的缓存问题。3.为啥要使用缓存?使用缓存的目的主要有两个:(1)高性能比如说有一个很复杂的sql数据查询,这个查询要耗费大量的时间,如果每次都直接取数据查询,那必然会对请求响应时间造成很大的影响,如果能在第一次查询完毕之后,将其直接保存在缓存当中,下次查询的时候,直接在缓存中拿走现成的数据,这样就会大大缩短请求的响应时间。(2)高并发我们知道数据库能承受的并发是有限的,那么在流量高峰期(比如,抢购、打折、秒杀等等),会有大量的请求进入我们的系统,比如查询某个商品的详情,如果我们没有缓冲,那么给次查询都要走数据库,假如我们的数据库每秒只能接受2000个请求,结果一秒钟进来了5000个请求,那么数据库就直接崩掉了,毫无高并发可言,而如果我们中间具有缓存服务,那么在第一个用户查询商品详情时(或者提前将放好)我们可以直接将商品的详情信息数据放到缓存里面,这样在后续用户查询时就可以直接走缓存,不走数据库,缓存是基于内存的,它的访问速度快,并发高;因此就可以提供一个高并发的支持。4.用了缓存会出现什么问题?主要常见的有下面三个问题1)缓存与数据库双写不一致2)缓存雪崩3)缓存穿透4)缓存并发竞争

大数据技术与架构

Flink系列精华文章合集:

    后面会继续更新更多实战案例...

版权声明
本文为[蜡笔小新v]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_9928699/2893691

  1. CTO要我把这份MySQL规范贴在工位上!
  2. What is the difference between StringBuffer and StringBuilder? Why is the grade so low?
  3. Java学习、面试、求职、干货资源精品合集
  4. Docker(35)- docker inspect 命令详解
  5. Explanation of docker (35) - docker inspect command
  6. 新技能 MyBatis 千万数据表,快速分页!
  7. Java 并发编程:AQS 的互斥锁与共享锁
  8. 每天学一个 Linux 命令(8):ls
  9. 100+个Java项目视频教程+源码+笔记,项目经验不用愁了!
  10. 100+个Java项目教程+源码+笔记,项目经验不用愁了!
  11. JavaScript, ABAP和Scala里的尾递归(Tail Recursion)
  12. SpringBoot 的@Value注解太强大了,用了都说爽!
  13. SpringBoot整合Elastricsearch + LogStash + Kibana太简单了!
  14. 30 张快速学习 Java 的思维导图
  15. 30 mind maps for quick learning java
  16. 【DB宝41】监控利器PMM的使用--监控MySQL、PG、MongoDB、ProxySQL等
  17. 一个MySQL建表需求的讨论和引导
  18. Docker 服务终端 UI 管理工具
  19. [DB Bao 41] use of PMM -- monitoring mysql, PG, mongodb, proxysql, etc
  20. linux cpu 内存性能监测工具
  21. 一款组学数据分析软件:GeneSpring GX
  22. 基于Hive进行数仓建设的资源元数据信息统计:Hive篇
  23. 【DB宝41】监控利器PMM的使用--监控MySQL、PG、MongoDB、ProxySQL等
  24. 【DB宝41】监控利器PMM的使用--监控MySQL、PG、MongoDB、ProxySQL等
  25. Kafka 2.8独立运行,不再需要ZooKeeper
  26. 关于Maven,我是如何理解并使用的
  27. Java并发组件浅析
  28. 超赞,InnoDB调试死锁的方法!(收藏)
  29. 162天,100期Java项目,终于更完了
  30. Sentry(v20.12.1) K8S 云原生架构探索,JavaScript 性能监控之采样 Transactions
  31. tomcat应用服务启不来,没有报错日志?不可能!
  32. Sentry(v20.12.1) K8S 云原生架构探索, SENTRY FOR JAVASCRIPT 手动捕获事件基本用法
  33. 162天,100期Java项目终于更完了!
  34. 100+个Java项目视频教程+源码+笔记,项目经验不用愁了!
  35. 162 days, 100 Java projects, finally more finished
  36. 分享互联网2021年最新Java面试题汇总整理-附详细答案解析
  37. 为什么不建议使用 Java 自带的序列化?
  38. 162 days, 100 java project is finished!
  39. 工作八年,分享整合初中高级Java面试题合集附答案(2020年最新版)
  40. 162天,100期Java项目,终于更完了!
  41. Spring Boot 2.4.3、2.3.9 版本发布,你准备好了吗?
  42. Spring Cloud 和 Dubbo 哪个会被淘汰?
  43. Spring Boot/Cloud干货汇总(持续更新:20180226版)
  44. Spring Cloud构建微服务架构:分布式服务跟踪(抽样收集)【Dalston版】
  45. Spring Cloud构建微服务架构:服务网关(过滤器)【Dalston版】
  46. 近期关于Spring Boot/Cloud的文章汇总
  47. Spring Cloud构建微服务架构:Hystrix监控面板【Dalston版】
  48. Docker(35)- docker inspect 命令详解
  49. java中遍历树形菜单,你可能不知道还有这样的方法
  50. Spark将Dataframe数据写入Hive分区表的方案
  51. Spark将Dataframe数据写入Hive分区表的方案
  52. Netty源码解析2-Reactor
  53. Netty源码解析2-Reactor
  54. Netty源码解析4-Handler综述
  55. Netty源码解析4-Handler综述
  56. Netty源码解析5-ChannelHandler
  57. Netty源码解析5-ChannelHandler
  58. Netty源码解析6-ChannelHandler实例之LoggingHandler
  59. Netty源码解析6-ChannelHandler实例之LoggingHandler
  60. 关于redis的几件小事(一)redis的使用目的与问题