![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 86
汐梦聆海
過去を捨てなくては 未来の場所がない
展开
-
Mysql与Redis双写一致性问题
在更新完数据库以后,必然需要对缓存中的键值对进行修改。而这个过程涉及到了各种各样的不一致性。大致有以下四种双写策略:(1)先更新缓存,再更新数据库;(2)先更新数据库,再更新缓存;(3)先删除缓存,再更新数据库;(4)先更新数据库,再删除缓存;(1)先更新缓存,再更新数据库这种策略会涉及到几个问题:问题一:如果缓存更新成功,而数据库抽风了,因为各种原因更新失败,此时出现缓存与数据库的数据不一致;问题二:假设有两个线程A和B,都对数据库进行修改,但执行顺序如下:(1)A对缓存进行更新;(2)B原创 2022-02-19 12:22:51 · 2062 阅读 · 2 评论 -
Redis缓存穿透 击穿 雪崩及解决方案
缓存处理流程前台请求数据,先到缓存(Redis)中去取,如果有则直接返回数据;如果没有,则进一步到数据库中去获取数据。在高并发的场景之下,使用缓存可以快很多;但如果大量的请求越过缓存,请求数据库,那必然会给数据库带来很大的压力,会出现下面所说的缓存穿透、缓存击穿和缓存雪崩的问题。缓存穿透缓存穿透是指查询一个不存在的数据,由于缓存是不命中时被动写的。如果从数据库中查不到数据,则不会写入缓存,所以这将导致不存在的数据每次请求都要到DB中去查询,失去了缓存的意义。特别是在流量大的时候,可能数据库就挂掉了。原创 2021-11-29 14:28:26 · 1943 阅读 · 3 评论 -
Redis主从复制简述
概念主从复制,就是将Redis服务器中的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(Slave)。数据的复制只能从主节点复制到从节点(一般情况下实现读写分离,即主节点负责写操作,从节点负责读操作)。在默认情况下,每个Redis服务器都是主节点,一个主节点可以有0个或者多个从节点构成,但是每一个从节点只能有一个主节点。作用数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式;故障恢复:当主节点发生故障时,从节点可以暂时代替主节点提供服务,是一原创 2021-11-28 15:57:34 · 815 阅读 · 0 评论 -
Redis持久化之RDB和AOF
我们知道,Redis是基于内存的数据库,如果遇到断电的情况,那么数据将会丢失。因此,我们需要将Redis中的数据同步到磁盘上,以实现数据的持久化。实现持久化的方式分为两种:(1)RDB(Redis Database);(2)AOF(Append Only File)RDB(Redis Database)在指定的时间间隔后,如果更改了指定次数的数据,则将内存中的数据集快照写入到磁盘;在恢复过程中,直接读取快照文件,进行数据的恢复。在默认情况下,Redis将数据库快照保存在名为 dump.rdb的二进制文件原创 2021-11-28 13:37:30 · 823 阅读 · 0 评论 -
Redis中的事务
Redis中的事务本质是一组命令的集合。事务中的每条命令都会被序列化,执行过程中按顺序执行,不允许其他命令进行干扰。提炼一下即:(1)一次性(2)顺序性(3)排他性。值得注意的是:Redis事务没有隔离级别的概念;此外,Redis单条命令是保证原子性的,但是事务不保证原子性。Redis事务操作过程开启事务(multi)命令入队执行事务(exec)因此开启事务以后的所有命令,在加入队列时都没有被执行,而是直到提交时才会开始执行(exec),并一次性执行完毕。127.0.0.1:6379>原创 2021-11-26 20:52:45 · 257 阅读 · 0 评论 -
Redis五大基本数据类型
Redis中五大基本数据类型为String,List,Set,Hash和Zset(有序集合)。其中String类型是最为基础的,list可以用来做队列/栈,set保证集合内元素不重复,hash是的value部分也是若干个k-v的形式(一般用于存储对象),Zset与set的不同是维护了一个score,可以根据score进行排序。下面是一些常用的API:(Redis的命令无大小写之分,为了区分命令关键字与key value,下面的命令都用大写符号表示):String命令描述SET ke原创 2021-11-25 22:39:16 · 265 阅读 · 0 评论