Skip to content

Commit

Permalink
复习+1
Browse files Browse the repository at this point in the history
  • Loading branch information
Q10Viking committed Mar 20, 2024
1 parent 6a4f128 commit f1e2f0c
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 4 deletions.
2 changes: 1 addition & 1 deletion docs/Redis/25 哨兵高可用架构.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ typora-root-url: ..\.vuepress\public

> sentinel哨兵是特殊的redis服务,不提供读写服务,**主要用来监控redis实例节点**

**哨兵机制:**使用Redis 哨兵来监控主节点和从节点的状态。哨兵是一组独立运行的进程,它会监控Redis实例的健康状态,并在主节点出现故障时自动进行故障转移。它还能够监控从节点,并在需要时将其提升为主节点。

![](/images/Redis/80634.png)

Expand Down
2 changes: 2 additions & 0 deletions docs/Redis/27 Redis集群方案对比.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ typora-root-url: ..\.vuepress\public

redis集群是一个由**多个主从节点群组成的分布式服务器群**,它具有**复制、高可用和分片**特性。**Redis集群不需要sentinel哨兵·也能完成节点移除和故障转移的功能**。需要将每个节点设置成集群模式,这种集群模式没有中心节点,可水平扩展,据官方文档称可以线性扩展到上万个节点(**官方推荐不超过1000个节点**)。redis集群的性能和高可用性均优于之前版本的哨兵模式,且集群配置非常简单

Redis 集群是一种分布式方案,可以将多个Redis节点组成一个逻辑集群,**提供数据分片和自动故障恢复**。每个节点负责存储和处理部分数据,通过节点间的数据分片和分布式算法保证数据的可用性和负载均衡。当集群中的某个节点出现故障时,集群会自动进行故障转移和恢复

![](/images/Redis/image-20211114053648501.png)


Expand Down
20 changes: 17 additions & 3 deletions docs/Redis/44 过期键删除策略.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,26 @@ typora-root-url: ..\.vuepress\public

## Redis对于过期键有三种清除策略

1. 被动删除:当读/写一个已经过期的key时,会触发惰性删除策略,直接删除掉这个过期key
2. 主动删除:由于惰性删除策略无法保证冷数据被及时删掉,所以Redis会定期主动淘汰一批**已过期**的key
3. 当前已用内存超过maxmemory限定时,触发**主动清理策略**
1. 被动删除(惰性删除):当读/写一个已经过期的key时,会触发惰性删除策略,直接删除掉这个过期key
2. 主动删除(定期删除):由于惰性删除策略无法保证冷数据被及时删掉,所以Redis会定期主动淘汰一批**已过期**的key
3. 定期淘汰:当前已用内存超过maxmemory限定时,触发**主动清理策略**

> **主动清理策略**在Redis 4.0 之前一共实现了 6 种内存淘汰策略,在 4.0 之后,又增加了 2 种策略,总共8种:


## Redis的内存淘汰策略

1. **LRU(最近最少使用):** LRU是Redis默认的内存淘汰策略。根据最近使用的时间戳来判断键的热度,将最久未被使用的键淘汰出去。这种策略保留了最近较常访问的键,适合于热点数据的场景。
2. **LFU(最不经常使用):** LFU根据键被访问的频率来判断热度,淘汰访问频率最低的键。这种策略适用于访问模式稳定但不同键的访问频率差异明显的场景。
3. **Random(随机淘汰):** 随机淘汰策略是一种基于概率的淘汰方法,随机选择一个键进行淘汰。这种策略简单高效,但可能导致较高的缓存命中率下降。
4. **TTL(生存时间):** TTL策略基于键的过期时间,淘汰剩余生存时间最短的键。适用于关注数据实效性的场景。
5. **Maxmemory Policy(最大内存策略):** Redis提供了几种最大内存策略,包括noeviction(禁止淘汰)、allkeys-lru、allkeys-random等。这些策略是在达到设定的最大内存限制后,对写操作返回错误,避免继续写入导致系统崩溃。

在Redis中,可以通过配置文件或动态命令来设置内存淘汰策略。根据具体的业务需求和数据访问模式,选择合适的内存淘汰策略以提高缓存的效率和性能。



1. **针对设置了过期时间的key做处理**
1. volatile-ttl:在筛选时,会针对设置了过期时间的键值对,根据过期时间的先后进行删除,越早过期的越先被删除。
2. volatile-random:就像它的名称一样,在设置了过期时间的键值对中,进行随机删除。
Expand Down
21 changes: 21 additions & 0 deletions docs/Redis/52 Redis常用应用场景.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
sidebarDepth: 3
sidebar: auto
prev:
text: Back To 目录
link: /Redis/
typora-root-url: ..\.vuepress\public
---





1. **缓存:**作为高性能缓存层,提供快速数据访问。
2. **分布式会话管理:**实现跨服务器的会话共享。
3. **消息队列:**用作中间件实现异步通信和任务队列。
4. **实时排行榜/计数器:**用有序集合实现实时排名和计数功能。
5. **地理位置信息存储与查询:**支持存储地理位置信息并进行位置查询。
6. **实时数据分析:**存储实时生成的数据,进行快速统计和分析。

需要注意根据具体场景合理使用,充分考虑内存容量和数据持久化等因素。同时,Redis也可与其他存储系统结合使用构建复杂应用架构。

0 comments on commit f1e2f0c

Please sign in to comment.