
redis
文章平均质量分 75
to_real
这个作者很懒,什么都没留下…
展开
-
缓存穿透、缓存击穿、缓存雪崩区别和解决方案
一、缓存处理流程 前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。 二、缓存穿透 描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 解决方案:接口层增加校验,如用户鉴权校验,id做基础校验,id<=0的...转载 2022-02-19 17:15:29 · 123 阅读 · 0 评论 -
缓存为什么要用 Redis,而不是使用 MongoDB
分享一道面试题,问出这种问题,我觉得实在是也没什么意思。但是今天还是稍微来分析一下,毕竟总会有人问 1 加 1 为什么等于 2。首先,我们来想一下,既然是用来做缓存,必须要符合哪些特征呢?缓存所要具有的基本特征访问速度要快,不然我直接去数据库查岂不是更好,毕竟就是为了提升某些常态化数据的提取速度和减轻数据库压力,才去使用的缓存模块。 支持的存储方式要符合多方面的系统需要,比如不同语言编写的系统交互,是不是要去查询同一个缓存。 要比单纯读数据库更加节约成本。 能保存的数据量要够多,这..原创 2021-12-22 14:54:28 · 2433 阅读 · 0 评论 -
MySQL与Redis缓存的同步方案
本文介绍MySQL与Redis缓存的同步的两种方案 通过MySQL自动同步刷新Redis,MySQL触发器+UDF函数实现 解析MySQL的binlog实现,将数据库中的数据同步到Redis 一、方案1(UDF)场景分析:当我们对MySQL数据库进行数据操作时,同时将相应的数据同步到Redis中,同步到Redis之后,查询的操作就从Redis中查找过程大致如下: 在MySQL中对要操作的数据设置触发器Trigger,监听操作 客户端(NodeServer)向M原创 2021-05-13 16:44:49 · 138 阅读 · 0 评论 -
漫画:什么是分布式锁?
————— 第二天 —————————————————分布式锁的实现有哪些?1.Memcached分布式锁利用Memcached的add命令。此命令是原子性操作,只有在k...原创 2021-03-15 11:33:04 · 180 阅读 · 0 评论 -
分布式锁
对于一个单机的系统,我们可以通过synchronized或者ReentrantLock等这些常规的加锁方式来实现,然而对于一个分布式集群的系统而言,单纯的本地锁已经无法解决问题,所以就需要用到分布式锁了,通常我们都会引入三方组件或者服务来解决这个问题,比如数据库、Redis、Zookeeper等。通常来说,分布式锁要保证互斥性、不死锁、可重入等特点。互斥性指的是对于同一个资源,任意时刻,都只有一个客户端能持有锁。不死锁指的是必须要有锁超时这种机制,保证在出现问题的时候释放锁,不会出现死锁的问题。原创 2021-03-15 10:46:09 · 168 阅读 · 0 评论 -
IO多路复用
1、什么是IO多路复用定义IO多路复用是一种同步IO模型,实现一个线程可以监视多个文件句柄;一旦某个文件句柄就绪,就能够通知应用程序进行相应的读写操作;没有文件句柄就绪时会阻塞应用程序,交出cpu。多路是指网络连接,复用指的是同一个线程2、为什么有IO多路复用机制?没有IO多路复用机制时,有BIO、NIO两种实现方式,但有一些问题同步阻塞(BIO)服务端采用单线程,当accept一个请求后,在recv或send调用阻塞时,将无法accept其他请求(必须等上一个请求处recv或send原创 2020-10-15 11:14:47 · 305 阅读 · 0 评论 -
为什么采用单线程的 Redis 也会如此之快
众所周知,Redis在内存库数据库领域非常地火热,它极高的性能和丰富的数据结构为我们的开发提供了极大的便利。但我们也听说了,Redis是单线程的,为什么采用单线程的Redis也会如此之快呢?这篇文章我们来分析一下其中的缘由。其实,严格来说,Redis Server是多线程的,只是它的请求处理整个流程是单线程处理的。这一点我们一定要清楚了解到,不要单纯地认为Redis Server是单线程的!我们平时说的Redis单线程快是指它的请求处理过程非常地快!下面我们就来分下一下为什么请求处理使用单线原创 2020-10-15 09:48:41 · 95 阅读 · 0 评论 -
安装redis中执行make时出错及解决方案
执行 make 时若报这个错出现如下错误 :cd src && make allmake[1]: Entering directory '/xx/xx/redis-x.x.x/src' CC adlist.o/bin/sh: cc: command not foundmake[1]: *** [adlist.o] Error 127make[1]: Leaving directory '/xx/xx/redis-x.x.x/src'ma...原创 2020-10-12 16:04:50 · 3219 阅读 · 1 评论