-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Pika 线程模型
leviathan1995 edited this page Nov 20, 2017
·
7 revisions
pika使用的是多线程模型,使用多个工作线程来进行读写操作,由底层nemo引擎来保证线程安全,线程分为11种:
- PikaServer:主线程
- DispatchThread:监听端口1个端口,接收用户连接请求
- WorkerThread:存在多个(用户配置),每个线程里有若干个用户客户端的连接,负责接收处理用户命令并返回结果,每个线程执行写命令后,追加到binlog中
- Trysync:尝试与master建立首次连接,并在以后出现故障后发起重连
- BinlogSender:存在多个(动态创建销毁,本master节点挂多少个slave节点就有多少个),每个线程根据slave节点发来的同步偏移量,从binlog指定的偏移开始实时同步命令给slave节点
- BinlogReceiver:存在1个(动态创建销毁,一个slave节点同时只能有一个master),将用户指定或当前的偏移量发送给master节点并开始接收执行master实时发来的同步命令,在本地使用和master完全一致的偏移量来追加binlog
- SlavePing:slave用来向master发送心跳进行存活检测
- bgsave:后台dump线程
- HeartBeat:master用来接收所有slave发送来的心跳并回复进行存活检测
- scan:后台扫描keyspace线程
- purge:后台删除binlog线程
- Monitor: 实时打印出Pika服务器接收到的命令
- Pub/Sub: 用来支持Pika的订阅功能
- 安装使用
- 支持的语言和客户端
- 当前支持的Redis接口以及兼容情况
- 配置文件说明
- 数据目录说明
- info信息说明
- 部分管理指令说明
- 差异化命令
- PikiwiDB Sharding Tutorials
- PikiwiDB 订阅
- 配合sentinel(哨兵)实现pikiwidb自动容灾
- 如何升级到PikiwiDB3.0
- 如何升级到PikiwiDB3.1或3.2
- PikiwiDB多库版命令、参数变化参考
- PikiwiDB分片版本命令
- 副本一致性使用说明
- PikiwiDB内存使用
- PikiwiDB最佳实践
- 整体架构
- 线程模型
- 全同步
- 增量同步
- 副本一致性
- 快照式备份
- 锁的应用
- nemo存储引擎数据格式
- blackwidow存储引擎数据格式
- PikiwiDB源码学习--pikiwidb的通信和线程模型
- PikiwiDB源码学习--pikiwidb的PubSub机制
- PikiwiDB源码学习--pikiwidb的命令执行框架
- PikiwiDB源码学习--pikiwidb和rocksdb的对接
- pikiwiDB-NoSQL原理概述
- pikiwidb在codis中的探索
- Pikiwidb 笔记
- pikiwidb 主从同步原理
