Redis
文章平均质量分 91
Day_Day_Up_33
一个努力认真慢慢向前的后端女程序员呐~
展开
-
Redis_持久化
为什么需要持久化?我们知道Redis是基于内存存储的,有一个问题就是断电即失,所以Redis提供了将内存数据持久化到硬盘,以及用持久化文件来恢复数据库数据的功能,从内存当中同步到硬盘上,这个过程叫做持久化过程。Redis支持两种形式的持久化,一种是RDB另一种是AOF;一般来说, 如果对数据的安全性要求非常高的话,应该同时使用两种持久化功能。如果你非常关心你的数据, 但仍然可以承受数分钟以内的数据丢失, 那么你可以只使用 RDB 持久化。原创 2023-08-09 11:36:09 · 31 阅读 · 0 评论 -
Redis_常见基础面试点
给每个key维护一个时间戳,淘汰时随机采样5个key,从中淘汰掉最旧的key;在访问数据的时候,每次将最新访问的key移动到表头,即最近被访问的key在表头,最少访问的key在表尾;Redis占用内存超出最大限制(maxmemory)时,可采用内存淘汰策略让Redis淘汰一些数据,以腾出空间继续提供读写服务。Redis会把设置了过期时间的key放入一个独立的字典中,在key过期时并不会立即删除它。,就是先考虑键值对访问的次数,优先淘汰。,对于访问次数相同的键值对,再选择。进⾏淘汰,也就是LRU算法。原创 2023-08-04 20:57:06 · 34 阅读 · 0 评论 -
Redis_高并发高可用知识
脑裂(网络分区),也就是说,某个 master 所在机器突然脱离了正常的网络,跟其他 slave 机器不能连接,但是实际上 master 还运行着,此时哨兵可能就会认为 master 宕机了,然后开启选举,将其他 slave 切换成了 master 这个时候,这个过程,实现了 Redis 的主从架构下的高可用性。因此,旧 master 再次恢复的时候,会被作为一个 slave 挂到新的 master上去,自己的数据会清空,重新从新的 master 复制数据,导致写向旧 matse r的数据可能也丢失了。原创 2023-08-04 20:55:12 · 1439 阅读 · 1 评论 -
Redis_缓存验证码
所以,Redis中的LRU算法是这样实现的:首先定义一个淘汰池,这个淘汰池是一个数组(大小为16),然后触发淘汰时会根据配置的淘汰策略,先从符合条件的key中随机采样选出5(可在配置文件中配置)个key,然后将这5个key按照空闲时间排序后放到淘汰池中,每次采样之后更新这个淘汰池,让这个淘汰池里保留的总是那些随机采样出的key中空闲时间最长的那部分key。我们知道,实现LRU算法时,需要将所有的数据按照访问时间距离当前时间的长短排序放到一个双向链表中,基于这个链表实现数据的淘汰。为了后续的校验登录状态。原创 2023-08-04 20:46:23 · 923 阅读 · 1 评论