redis

redis是响应多,处理单也就是每个线程响应多个请求(epoll函数),一个线程处理对个fd(io复用)

Redis的哨兵模式之所以要启动多个哨兵,主要是为了通过分布式架构来实现对Redis数据节点的高可用性和监控。在哨兵模式下,每个哨兵节点都会监控数据节点和其他哨兵节点的工作状态。当发现节点不可达时,哨兵节点会将该节点标记为下线。如果主节点被标记为不可达,哨兵节点之间会进行协商,当大多数哨兵节点认为主节点不可达时,它们会选举出一个哨兵节点来完成自动故障转移的工作。这个选举和决策过程需要多个哨兵节点共同参与,以保证决策的准确性和系统的整体稳定性。启动多个哨兵节点能够有效避免单点故障问题,提高系统的健壮性和高可用性。

一个建程处理多个客户给
Redis 多路复用实现一个线程监视多个文件句柄(fd)类似于医院叫号
一旦某个文件句柄就绪就能通知对应应用程序进行读写操作没有fd就会阻塞,从而释放CPU资源
RDB和AOF持久
前者快照定期存,后者日志记录
主从复制是写在配置文件里
哨兵机制监控主从服务器也是配制文件出故障然后投票选出新的主服务器
哨兵是多个的主要是采用分布式架构来实现对Redis数据的高可用和监接.哨兵在监测到服务节点不可达会进行协商选出一个哨兵节点来完成故障转移
集群搭建先写配制文件然后用命令为每个 master 创建 slave节点

Redis 是多线程 4版本之后
在单线程的时候采用多分路复用监听多个socket 连接客户端 一个线程处多个请求随着多核CPU出现软件速度不变
硬件速度提升故必须更新
单线程,在处理高并发会造成中:顿但是单线程不会造成死锁声问题
使用惰性删除解决卡顿问题
删除工作交给后台子线程
redis 瓶颈是内存或者网络而非CPU采用多线程处理网络请求提高并行度 读写操作仍是单线程即要又要
情性存储就是需要的时候再分布内存

Elasticsearch的选举机制主要指的是集群主节点的选举,当主节点失效时,集群会自动进行新的主节点的选举。这个过程基于Bully算法,其中每个节点都有一个唯一的编号,并且只有编号最大的存活节点才能成为主节点。具体来说,节点会向所有比自己编号大的节点发送选举消息,如果该节点没有收到任何回复,则它将成为新的主节点。

Elasticsearch采用master-slave模式,其中只有主节点(Master节点)有资格维护全局的集群状态。主节点负责在有节点加入或退出集群时重新分配分片,并将集群最新状态发送给其他节点。主节点还会定期通过ping的方式验证其他节点的存活状态。2

选举过程通常在以下几种情况下触发:集群启动初始化、集群的主节点崩溃时、或当任何节点发现当前集群中的主节点没有得到半数以上(n/2 + 1)节点认可的时候。这一机制确保了Elasticsearch集群的高可用性和稳定性。

Redis作为一种基于内存的缓存技术,虽然为数据处理提供了高速的存取能力,但在实际应用中也会遇到一些问题,主要包括:
缓存与数据库数据一致性问题:当数据库中的数据被修改后,需要及时更新Redis缓存中的数据,否则就会出现数据不一致的问题。这通常需要通过应用程序逻辑来保证,例如在数据变更时同时更新缓存。
缓存雪崩:当Redis缓存服务器因故障停机或重启时,大量请求会直接转移到后端数据库上,造成数据库压力过大甚至宕机,这就是缓存雪崩现象。为了防止缓存雪崩,可以采取设置合理的缓存失效时间、使用Redis集群等方式。
缓存击穿:对于一些非常热点且时效性很高的数据,如果缓存中的数据过期或被删除,大量并发请求会直接打到数据库上,造成数据库压力过大。这可以通过设置热点数据不过期、使用熔断机制等策略来应对。
缓存穿透:如果恶意用户频繁查询不存在的数据,Redis缓存中不会有这些数据的记录,请求会直接落到数据库上,这会导致数据库压力增大。解决缓存穿透的方法之一是对于不存在的数据也将其缓存起来,设置一个短暂的过期时间。
内存资源限制:Redis的数据存储在内存中,如果缓存的数据量太大,超出了系统可用的内存大小,会导致Redis无法正常工作。这需要合理估计数据量,配置合适的内存大小,或使用Redis集群来分担压力。
通过合理地配置Redis缓存策略,结合应用程序的实际需求,可以有效解决或缓解上述缓存问题,从而提高系统的性能和稳定性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值