- 博客(6)
- 收藏
- 关注
原创 redis的持久化
众所周知,redis是一个内存型的非关系型数据库,所以他的大部分数据是放在内存中,这样可以保证没有磁盘读写的损耗级上下文的开销,这样也就满足了redis“快”的一个特性,但是因服务器是可能存在突然的关闭及宕机的,所以redis有自己的持久化方式。在执行bgsave命令期间会创建子进程,所以在执行bgsave命令期间不会进行接受save命令和bgsave命令,因为这样save命令是父进程进行产生快照,这样父子进程会产生竞争,同时因为bgsave命令也会产生子进程所以也会进行拒绝。
2023-06-12 22:05:01 146
原创 聊聊比较常见的几种设计模式(1)单例
我们可以举一个简单的了例子,类如,我们去创建一个文件的网站,但是需要网站需要一些基本的文件的类型,但是这个文件类型肯定是在多个模块中使用的,这样我们就可以把这部分写为一个单例,这样在其他模块使用的时候可以直接调用此部分,这样既可以保证网站内的文件类型存在同一种,也可以在对文件类型进行控制。单例模式应该是比较常见,也经常老生常谈的模式,在项目中也是有使用的,单例模式顾名思义,在进程中只有一个实例,这个实例在上下线程中是公用的,例如在spring的容器中,同类的bean只能一个,这个就是单例模式的一个使用。
2023-01-28 13:54:49 110
原创 return和finaly的执行顺序
首先finaly什么时候执行,一个必要的前提条件是要有对应的try代码块,而且无论代码有没有走完,都会执行finaly语句中包含的方法。我们在代码中会遇到一个问题,return和finaly的到底哪个先执行?return可以理解外跳出方法,执行一个出栈的过程。我们可以发现finaly的代码块确实被执行了。但是却发现return之后的还仍然是之前的值。我们可以可以先在之前明确一个问题。之后我们看一下控制台的输出。之后我们可以看一部分代码。...
2022-08-07 22:53:57 316 1
原创 redis的分布式锁
我们先来聊一聊redis的部署模式(小编自己的理解,如果有不准确的地方希望大家评论在下面)1,单机部署redis如果只部署在一台机器上,那么为了防止脏数据,我们就可以使用synchronized关键字进行加锁,因为此时的请求可以理解在多个线程在向这个redis的这个进程来请求资源,这时我们只需要保证在一个进程内多个线程请求资源的不会因为并发性导致出现数据差异,所以此时我们可以选择加锁,因为是单机部署,所以锁只用考虑在一个进程内。2,分布式部署redis如果部署在多台机器上,那么我们就需要保证
2022-02-27 23:07:59 167
原创 redis的缓存穿透,缓存击穿,缓存雪崩
在之前的redis的的文章中,我们说过redis的主从复制,现在我们来说一说redis经常发生的集中问题1,缓存穿透,是指一个缓存中没有的数据同时数据库中也没有,这样就会导致缓存没有命中,因为数据库中也没有这项数据,所以在请求之后也不会在写入缓存中,这样就会导致直接访问数据源,导致压垮数据源2,缓存击穿,是指key对应的数据是存在的,但是在缓存中过期了。这时有高并发的大量数据请求过来,就会因为缓存中没有而导致直接去访问数据源,访问之后还需要将数据回写到数据源中,这是会容易把数据源压垮3,缓存雪崩
2022-02-13 23:30:22 664
原创 redis的主从复制
本文小编根据自己对redis的理解!首先,什么是redis,我们先从它的数据结构看,它的本质其是一个Key-Value的内存数据库,因为位置是在内存中,并且直接是在内存中操作的,所以它的性能很高,每秒可以处理10万次读写。它的出色的地方还有它支持多种数据结构的存储,包括字符串,哈希表,链表和集合等,缺点也很明显,因为是在内存中,这就导致数据的大小以及数量受到了限制,不能作为海量数据的读写操作之后我们在来说一说redis的主从复制1,负载均衡,在redis采用主从复制之后,可以用主数据库进行写操作
2022-02-04 22:44:25 1235 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人