归档
业精于勤荒于嬉,行成于思毁于随
10
29
redis分布式锁 redis分布式锁
为了保证并发访问的正确性,Redis 提供了两种方法,分别是加锁和原子操作。 原子操作 单命令操作(INCR/DECR); 把多个操作写到一个 Lua 脚本中,以原子性方式执行单个 Lua 脚本 分布式锁 分布式锁的加锁和释放锁的过程,涉
2020-10-29
27
redis缓存 redis缓存
redis缓存使用 应用读取数据时,需要先读取 Redis; 发生缓存缺失时,需要从数据库读取数据并更新缓存。 Redis为旁路缓存,因为读取缓存、读取数据库和更新缓存的操作都需要在应用程序中来完成。 缓存分类 只读缓存:加速读请求。
2020-10-27
26
rabbitmq消息可靠性 rabbitmq消息可靠性
消息丢失场景消息从生产者写入到消息队列的过程问题原因:网络抖动 解决办法: 事务在生产者发送消息之前,通过channel.txSelect开启一个事务,接着发送消息, 如果消息投递失败,进行事务回滚channel.txRollback,然
2020-10-26
26
rabbitmq消息重复 rabbitmq消息重复
场景 可靠性投递机制:mq收到生产者消息,mq在返回confirm的时候网络出现闪断,导致broker未收到应答,导致发送两次。 MQ Broker服务与消费端传输消息的过程中出现网络抖动。 消费端故障、异常。 解决方案可靠性投递解决对每
2020-10-26
26
rabbitmq集群 rabbitmq集群
集群概述 集群节点类型 磁盘节点:运行时状态信息(集群、队列、绑定虚拟主机、用户、策略等)存储在内存和磁盘中。集群至少有一个磁盘节点。关闭集群后,重启时需要按照一定顺序启动。 内存节点:运行时状态信息(集群、队列、绑定虚拟主机、用户、策略等
2020-10-26
26
rabbitmq消息消费 rabbitmq消息消费
消费方法Basic.Get 每次接收消息必须发送一次请求 有消息可用,RabbitMQ返回Basic.GetOk以及消息 无消息可用,RabbitMQ返回Basic.GetEmpty 应用程序需要评估RPC响应以及是否接收到消息。 示例
2020-10-26
26
rabbitmq消息路由 rabbitmq消息路由
direct交换器 特点 投递的消息有一个或者多个确定的目标。 检查字符串是否相等,不允许使用模式匹配。 绑定相同路由键的队列都能收到该路由键对应的消息。 适用于RPC消息通信模式下的路由应答消息 示例代码:Direct交换器 impo
2020-10-26
26
rabbitmq消息发布 rabbitmq消息发布
可靠投递 mandatory当交换器无法路由消息,RabbitMQ将回发Basic.Return消息到发布者,同时回发完整消息。Basic.Return是异步的,在消息发布后的任何时候都可能发生。在rabbitpy库中,客户端自动接收Bas
2020-10-26
26
redis RBD机制 redis RBD机制
RDB 就是 Redis DataBase,内存中的全量数据在某一个时刻的状态记录。 快照机制引入原因AOF日志进行故障恢复的时候,需要逐一执行操作日志。如果操作日志非常多,Redis 恢复得很慢,影响到正常使用。 bgsave命令 主进程
2020-10-26
26
redis AOF机制 redis AOF机制
先写内存,在写日志。1、命令执行成功才会被记录日志。2、避免对当前命令的阻塞。 风险1、突然宕机,Redis用作数据库的话,命令可能没有记入日志,所以就无法用日志进行恢复了。2、AOF 虽然避免了对当前命令的阻塞,但可能会给下一个操作带来阻
2020-10-26
26
redis网络IO模型 redis网络IO模型
单线程Redis 是单线程,主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的。持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。 避免了多线程编程模式面临的共享资源的并发访问控制问题。 多路复用机制一个线程处理
2020-10-26
26
redis数据结构 redis数据结构
基本数据结构包括:String(字符串)、List(列表)、Hash(哈希)、Set(集合)和 Sorted Set(有序集合) 基本数据结构 底层实现 string 动态字符串 List 双向链表、压缩列表 Hash
2020-10-26
1 / 2