![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 72
垃圾桶旁边的小男孩
想拥有一个网站的小屁孩
展开
-
Redis缓存雪崩、缓存击穿、缓存穿透
Redis缓存雪崩、缓存击穿、缓存穿透一、缓存雪崩现象:缓存中的key都设置了相同的过期时间,那么就会在某一时间点所有缓存的key同时失效,在这个时候又有大量的请求打进来的时候,就会导致这些请求全部打在了数据库上,造成数据库崩溃了,这就是缓存雪崩。还有一种缓存雪崩的情况就是Redis服务器突然发生宕机等意外情况,导致大量的请求打在数据库上造成缓存雪崩。解决:Redis高可用,其实就是搭建Redis集群,当一台Redis服务器挂掉之后还有另外的服务器可以用;限流降级,在缓存失效后,通过加锁或者原创 2021-03-31 20:35:41 · 57 阅读 · 0 评论 -
Redis主从复制与哨兵模式
Redis主从复制与哨兵模式一、主从复制简单来说,主从复制就是将一台Redis服务器中的数据单向复制到其他的Redis服务器中,注意是单向的。其中前者称为主机Master,后者称为从机Slave,一般来说,写操作是在主机Master上完成,读操作是在从机Slave上完成,从而实现读写分离。主从复制的作用主要有以下几点:数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。负载均衡:原创 2021-03-31 18:56:44 · 171 阅读 · 1 评论 -
Redis发布订阅
Redis发布订阅Redis提供了简单的发布订阅功能,使用起来也非常简单。所谓发布订阅就是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis客户端可以订阅任意数量的频道。下面是一个简单的发布订阅模型:客户端client2、client5、client1订阅了channel:当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:Redis中提供的发布订阅的命令有下面几个:PSUBSCRIBE patte原创 2021-03-31 12:16:28 · 53 阅读 · 0 评论 -
Redis持久化
Redis持久化Redis是基于内存操作的数据库,当服务器进程停止或者遭遇宕机等意外情况,内存中的数据就会全部清空,为了应对这样的情况,Redis提供了持久化机制。在Redis中提供了两种持久化机制:RDB和AOF一、Redis持久化之RDB(Redis DataBase)RDB持久化是将当前Redis中的全部数据生成快照保存到硬盘上,生成的文件是以.rdb结尾的文件。RDB持久化可以通过命令来手动持久化,也可以通过配置文件来配置自动持久化(一般来说都是自动持久化的)。通过命令手动持久化Redi原创 2021-03-30 23:55:59 · 69 阅读 · 0 评论 -
Redis事务和乐观锁
Redis事务和乐观锁一、Redis的事务如果学过MySQL就知道MySQL的事务需要遵循ACID原则,其中A就表示原子性,意思就是一个事务中的所有操作要么都执行成功,要么都不执行,不存在部分执行部位未执行的情况。但是在Redis中,Redis的单条命令是保证原子性的,但是事务不保证原子性!并且没有隔离级别的概念!Redis事务的本质:简单来说Redis的事务就是一组命令的集合,它把一组命令放入到一个队列中,并没有立即执行。在发起执行命令(exec)才会按顺序执行,并且在执行的过程中,不会收到其他请原创 2021-03-30 15:58:12 · 105 阅读 · 0 评论 -
Redis是单线程的,并且效率非常高
Redis是单线程的,并且效率非常高一、首先我们来解决Redis为什么这么快Redis是基于内存的采用的是单进程单线程的非关系型kv数据库,底层是由C语言编写的,官方给出的性能测试结果是可以达到10w+QPS。Redis效率非常高的原因有下面几点:Redis是完全基于内存的。众所周知,在内存中读写数据是非常快的,而Redis的绝大部分操作基本上都是基于内存的操作;Redis是单线程,没有多线程间的上下文切换和线程调度等问题,也没有各种锁的问题,多线程之间保证同步是时分耗时的操作,但是由于Redi原创 2021-03-30 14:26:51 · 330 阅读 · 0 评论