redis入门学习~

本文介绍了Redis的数据结构、内存管理策略(LFU和LRU),以及如何通过监控、配置和使用AOF/RDB持久化防止宕机。此外,还详细讲解了主从复制、Sentinel故障转移和RedisCluster的高可用性集群模式及其优缺点。
摘要由CSDN通过智能技术生成

redis

首先肯定要知道redis能存储什么类型

hash、list、set、zset、String

1->场景

暂无

2->导致的问题

2.1 宕机

首先要知道什么时候会导致这个问题

1.内存容量不够

首先要知道maxMemory是多少------------>>>>>>>>

如果达到内存了就会触发淘汰策略,LFU和LRU

LFU算法根据键的访问频率来选择要删除的数据。当内存不足时,LFU算法会优先删除最不经常访问的数据,以腾出更多的内存空间。

LRU算法根据键的最近使用时间来选择要删除的数据。当内存不足时,LRU算法会优先删除最近最少使用的数据,以释放内存。

如何解决?

1.监控redis的内存使用情况 info memory

2.可以留点缓冲区

3.设置key的过期时间

那如果因为内存溢出,导致宕机怎么办?--------->>>>>>

redis本身拥有持久化机制

AOF写日志 appendonly yes这个是开启AOF写日志

RDB快照

手动触发------>save会阻塞服务器,直到RDB快照持久化操作结束 bgsave是异步处理,会创建一个子进程来做快照持久化

自动触发

  • 在主从复制场景下,如果从节点执行全量复制操作,则主节点会执行bgsave命令,并将rdb文件发送给从节点;
  • 执行shutdown命令时,自动执行rdb持久化
save 900 1
save 300 10
save 60 10000

rdb默认存储在 dump.rdb

  • 因为AOF文件的更新频率通常比RDB文件的更新频率高,所以如果服务器开启了AOF持久化功能,那么服务器会优先使用AOF文件来还原数据库状态。
  • 只有在AOF持久化功能处于关闭状态时,服务器才会使用RDB文件来还原数据库状态。

如何开启redis持久化?

打开redis的配置文件 redis.conf

3.redis集群

Redis集群是一种通过将多个Redis节点连接在一起以实现高可用性、数据分片和负载均衡的技术。它允许Redis在不同节点上同时提供服务,提高整体性能和可靠性。

1.主从复制模式

//从 主从复制 开始
//主节点 配置好端口号 6379									主节点ip  端口
//子节点 配置好端口号 5555 并且需要指定好 主节点端口号 replicaof  127.0.0.1 6379 

主从复制的优缺点

优点

  1. 配置简单,易于实现。
  2. 实现数据冗余,提高数据可靠性。
  3. 读写分离,提高系统性能。

缺点

  1. 主节点故障时,需要手动切换到从节点,故障恢复时间较长。
  2. 主节点承担所有写操作,可能成为性能瓶颈。
  3. 无法实现数据分片,受单节点内存限制。

2."烧饼"模式

// "烧饼"模式  Sentinel  个人理解是 主要是用来做故障转移的 弥补了主从复制的不足
// 首先需要在 烧饼节点上创建一个新的配置文件 sentinel.conf

# sentinel节点端口号
port 26379

# sentinel monitor 被监控主节点名称 主节点IP 主节点端口 quorum
sentinel monitor mymaster 127.0.0.1 6379 2

# sentinel down-after-milliseconds 被监控主节点名称 毫秒数
sentinel down-after-milliseconds mymaster 60000

# sentinel failover-timeout 被监控主节点名称 毫秒数
sentinel failover-timeout mymaster 180000
    
    
//quorum是故障转移最小烧饼 节点数          down-after-milliseconds 表示主节点判断失效时间
//failover-timeout 是故障转移超时时间
    
    
redis> redis-sentinel /path/to/sentinel.conf

优点

  1. 自动故障转移,提高系统的高可用性。
  2. 具有主从复制模式的所有优点,如数据冗余和读写分离。

缺点

  1. 配置和管理相对复杂。
  2. 依然无法实现数据分片,受单节点内存限制。

哨兵模式适用于以下场景

  1. 高可用性要求较高的场景:通过自动故障转移,确保服务的持续可用。
  2. 数据备份和容灾恢复:在主从复制的基础上,提供自动故障转移功能。

3.Redis Cluster模式

// 为每个节点配置一个redis.conf
# cluster节点端口号
port 7001
# 开启集群模式
cluster-enabled yes
# 节点超时时间
cluster-node-timeout 15000
    
    
//启动六个节点
redis-server redis_7001.conf
//创建redis Cluster
redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1
  • 28
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值