1、什么是高可用?单机redis支撑的并发量有限(一般QPS在1W-几W不等),如果并发量大可能导致redis挂掉;redis配置不合理,fork子进程同步也可能导致redis挂掉(伪挂);操作系统异常(JVM挂掉、OOM、CPU过载、磁盘满了IOYICHANG)或者网络变更、迁移等也可能导致redis挂掉(暂停对外服务)。等等这些,可能引起业务系统正常运转的,都是非高可用的表现。理想状态,后台r
转载
2023-08-21 03:33:25
348阅读
一、什么数据可以放缓存1.不需要实时更新但是又极其消耗数据库的数据。2.需要实时更新,但是更新频率不高的数据。3.在某个时刻访问量极大而且更新也很频繁的数据。但是这种数据使用的缓存不能和普通缓存一样,这种缓存必须保证不丢失,否则会有大问题。二、什么数据不能放缓存1.实际上在一个web站点中,大部分数据都是可以缓存的,反而不能使用缓存的是很小一部分。这类数据包括比如涉及到钱、密钥、业务关键性核心数据
转载
2023-07-09 19:49:33
122阅读
最近在使用 Python notebook时老是出现python崩溃的现象,如下图,诱发的原因是“KERNELBASE.dll”,异常代码报“40000015”。折腾半天,发现我启动notebook时是用自定义startup.bat方式方式启动的,bat文件的内容为start C:\Anaconda3\python.exe "C:/Anaconda3/Scripts/jupyter-noteboo
转载
2023-11-30 14:54:57
72阅读
分析:其实这是问到缓存必问的,因为缓存雪崩和穿透,是缓存最大的两个问题,要么不出现,一旦出现就是致命性的问题,所以面试官一定会问你。剖析:缓存雪崩对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机。缓存挂了,此时 1 秒 5000 个请求全部落数据库,数据库必然扛不住,它会报一下警,然后就挂了。此时,如果没用什么特别的
转载
2024-06-28 20:10:34
31阅读
分析:其实这是问到缓存必问的,因为缓存雪崩和穿透,是缓存最大的两个问题,要么不出现,一旦出现就是致命性的问题,所以面试官一定会问你。剖析:缓存雪崩对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机。缓存挂了,缓存中查到不到数据,就会去查数据库,此时 1 秒 5000 个请求全部落数据库,数据库必然扛不住,它会报一下警,
转载
2024-03-05 22:03:58
33阅读
缓存雪崩缓存雪崩是指在某一个时间段内,缓存集中过期失效,如果这个时间段内有大量请求,而查询数据量巨大,所有的请求都会达到存储层,存储层的调用量会暴增,引起数据库压力过大甚至宕机。原因Redis突然宕机大部分数据失效举个栗子比如我们基本上都经历过购物狂欢节,假设商家举办 23:00-24:00 商品打骨折促销活动。程序小哥哥在设计的时候,在 23:00 把商家打骨折的商品放到缓存中,并通过redis
转载
2023-10-12 21:05:15
116阅读
对于抽象类以及接口的概念,大家都容易把这两者搞混,其实我也一样,在听李建忠老师的设计模式时,他也老把抽象类说成接口,弄的我就更糊涂了,所以找了些网上的资料。抽象类是从一系列相关对象中抽象出来的概念, 因此反映的是事物的内部共性;接口是为了满足外部调用而定义的一个功能约定, 因此反映的是事物的外部特性分析对象,提炼内部共性形成抽象类,用以表示对象本质,即“是什么”为外部提供调用或功能需要
转载
2023-09-16 20:37:42
77阅读
# Redis Pub/Sub消息丢失情况
## 概述
Redis是一个高性能的内存数据库,支持发布/订阅(Pub/Sub)模式。在Pub/Sub模式中,发布者将消息发送到特定的频道,而订阅者则可以订阅一个或多个频道,以接收相应的消息。
然而,在特定情况下,Redis Pub/Sub可能会导致消息丢失。这篇文章将向刚入行的开发者介绍Redis Pub/Sub的工作流程,并指导他们如何避免消息
原创
2023-10-26 10:24:49
299阅读
什么是分布式锁首先介绍下什么是分布式锁,分布式锁是针对不同系统多进程之间数据同步的一种解决方案。在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段。安全和可靠性要求先提出三个属性,这三个属性,是实现高效分布式锁的基础。安全属性A:互斥,不管任何时候,只有一个客户端能持有同一个锁。效率属性A:不会死锁,最终一定会得到锁,就算一个持有锁的客户端宕掉或者发生网络分区。效率属性B:容错,
# Redis 中的 Big Key
当我们谈论 Redis 的性能时,通常会提到各种优化手段。然而,许多开发者可能没有意识到,数据模型的设计和使用方式将对性能产生深远影响。特别是“Big Key”的概念,它可能会成为性能瓶颈,影响我们系统的稳定性和响应速度。
## 什么是 Big Key?
在 Redis 中,Big Key 指的是那些占用大量内存、并且处理起来可能比较慢的键值对。它们可能
原创
2024-10-10 07:02:35
40阅读
在不同的业务场景中,使用 Redis 单节点还是 Redis 集群是个需要深入考虑的问题。Redis 是一个高性能的内存数据库,其独特的数据结构和操作特性使其在许多场景中都有广泛的应用。然而,随着数据量的增加和业务访问频率的提升,可能会面临性能瓶颈,此时便需要考虑使用 Redis 集群,以满足更高的并发和容错要求。
### 环境预检
在决定是否使用 Redis 或 Redis 集群之前,我们首
摘抄并用于自查笔记1. Redis简介 我们日常Java Web开发,一般使用数据库进行存储,在数据量较大的情况下,单一使用数据库保存数据的系统会因为面向磁盘,磁盘读写速度比较慢而存在严重的性能弊端,一瞬间成千上万的请求到来,需要系统在极短时间内完成千万次的读写操作,这个时候数据库承受不了,易造成数据库瘫痪。为克服此类问题,Java Web项目通常引入Nosql技术,这是一种基于内存的数据库,并
转载
2024-06-06 11:53:26
38阅读
一、request 和session的生命周期问题request的生命周期是request请求域,一个请求结束,则request结束 session的生命周期是session会话域,打开一个浏览器请求一个网站的页面后,Session开始,当session超过时间限制(一般是20分种)后,session注销而失效 或是人为使用session.invalidate();使用session失效; 或是关
转载
2024-04-06 13:28:43
365阅读
前言每项技术的出世都是有原因的,都是为了解决问题。所以了解它所要解决的问题,对学习这项技术将事半功倍。下面就谈谈容器产生的背景,所要解决的问题。下面说的是根据我自己的理解,可能会有问题,欢迎指正!虚拟机和容器的区别很多人都会有这个疑问。有这个问题的大多是对于虚拟机和容器所解决问题理解不到位导致的。按我的理解,虚拟机是在解决这样的问题:避免资源浪费、充分使用资源、方便、统一管理。以前每人一台个人计算
转载
2024-04-19 22:13:54
67阅读
什么时候应使用示波器?需要看到信号上小的电压变化需要很高的时间间隔精度,参数信息时需要高垂直或电压分辨率时应使用示波器什么时候应使用逻辑分析仪?需要以与硬件相同的工作方式观察系统中的信号需要在若干信号线的高或低电平上进行码型触发,并观察结果,需要观察多于示波器通道数的信号线,并且不需要精密的时间间隔信息时,就应使用逻辑分析仪。调试并检验数字系统的运行同时跟踪并使多个数字信号相关联检验并分析总线中违
转载
2023-07-06 20:07:55
138阅读
缓存雪崩介绍: 缓存在同一时间大面积的失效,后面的请求都直接落到了数据库上,造成数据库短时间内承受大量请求。原因:1️⃣redis主机挂了,redis全盘崩溃。2️⃣缓存中有大量数据同时过期。处理方式:针对redis服务不可用的情况:1️⃣采用redis集群(主从+哨兵),避免单机出现问题整个缓存服务都没办法使用。 2️⃣限流,避免同时处理大量的请求。针对热点缓存失效的情况:1️⃣设置不同的失效时
转载
2024-02-22 13:44:40
33阅读
面试官喝了一口82年的葡萄糖,推了一下金丝眼镜,慢慢直视着我,“年轻人,redis基础还不错,可是redis为什么很快,你倒是说一下,不然休想从我这里走出去”。。。。redis为什么这么快,到底有多快?很多人都知道,redis是基于内存的高性能k-v数据库,单线程模型,你这样回答,面试官说这就完了?那你完了,可以走了。一、redis为什么这么快1、基于内存实现  
转载
2023-08-05 19:24:27
0阅读
文章目录前言事务失效的八种场景1.异常未抛出2.异常与rollback不匹配3.方法内部直接调用4.在另一个线程中使用事务5.注解作用到private级别的方法上6.final类型的方法7.数据库存储引擎不支持事务8.事务的传播类型 前言这篇文章主要针对事务失效的情况来分析,应该也是最常遇到的问题。事务失效的八种场景1.异常未抛出被捕获的异常一定要抛出,否则是不会回滚的。// t1Service
转载
2023-11-16 14:21:18
288阅读
作者:小冰疫情期间在家工作时,同事使用了 insert into on duplicate key update 语句进行插入去重,但是在测试过程中发生了死锁现象: 由于开发任务紧急,只是暂时规避了一下,但是对触发死锁的原因和相关原理不甚了解,于是这几天一直在查阅相关资料,总结出一个系列文章供大家参考表锁和行锁我们首先来了解一下表锁和行锁:表锁是指对一整张表加锁,一般是 DDL 处理时
转载
2023-08-16 17:35:34
984阅读
在什么情况下用redis缓存
Redis作为一种高性能的内存数据库,在很多场景下都能发挥其极大的优势。特别是在需要频繁读取数据、需要高可用性和复杂的数据结构时,Redis的优势尤为明显。本文将深入探讨在什么情况下使用Redis缓存,并通过参数解析、调试步骤和性能调优等内容来说明如何最大化其优势。
## 背景定位
使用Redis时,我们常常会遇到下面的场景:一个电商平台在大促期间,面临着海量用