摘要: redis 集群方案主要有两类,一是使用类 codis 的架构,按组划分,实例之间互相独立; 另一套是基于官方的 redis cluster 的方案;下面分别聊聊这两种方案; 类 codis 架构 这套架构的特点: 分片算法:基于 slot hash桶; 分片实例之间相互独立,每组 一个master 阅读全文
posted @ 2018-05-15 22:23 大CC 阅读(18679) 评论(4) 推荐(10) 编辑
摘要: 现象 redis作为缓存场景使用,内存耗尽时,突然出现大量的逐出,在这个逐出的过程中阻塞正常的读写请求,导致 redis 短时间不可用; 背景 redis 中的LRU是如何实现的? 1. 当mem_used内存已经超过maxmemory的设定,对于所有的读写请求,都会触发redis.c/freeMe 阅读全文
posted @ 2018-03-06 21:19 大CC 阅读(3596) 评论(2) 推荐(3) 编辑
摘要: 1.12 CLI 的问题 Docker1.12 命令行接口(CLI)有40多个顶级命令,这些命令存在以下问题: 1. 没有归类组织,这让docker 新手很难学习; 2. 有些命令没有提供足够的上下文环境,以至于我们不知道是在操作image 还是container(eg:docker inspect 阅读全文
posted @ 2017-02-05 16:46 大CC 阅读(2277) 评论(0) 推荐(1) 编辑
摘要: 玩转 Ceph 的正确姿势 本文先介绍 Ceph, 然后会聊到一些正确使用 Ceph 的姿势;在集群规模小的时候,Ceph 怎么玩都没问题;但集群大了(到PB级别),这些准则可是保证集群健康运行的不二法门; Ceph 最初的目标是做一个分布式文件系统,直到现在这个目标也不能算完美实现;目前官网上对它 阅读全文
posted @ 2017-02-04 21:22 大CC 阅读(34546) 评论(0) 推荐(3) 编辑
摘要: Docker 常用命令 操作容器 启动容器 启动容器并启动bash(交互方式): 启动容器以后台方式运行(更通用的方式): ps:这里的 image_name 包含了tag:hello.demo.kdemo:v1.0 附着到容器 附着到正在运行的容器 进入正在运行的容器内部,同时运行bash(比at 阅读全文
posted @ 2016-05-29 10:55 大CC 阅读(42927) 评论(2) 推荐(8) 编辑
摘要: git常用命令初始化仓库新建仓库 对现有的项目进行管理,进入该项目目录并输入git initps:该命令将创建.git目录,但不会主动将现有项目中的文件纳入管理(需要自行添加);克隆仓库git clone https://github.com/libgit2/libgit2 文件的四种状态未跟踪 untracked 通过以下操作到达未跟踪状态:新建文件 vi aaa从索引区删除文件 git ... 阅读全文
posted @ 2016-05-14 17:19 大CC 阅读(1347) 评论(0) 推荐(2) 编辑
摘要: 从C++到GO 刚开始接触Go语言,看了两本Go语言的书,从c++开发者的角度来看看go语言的新特性,说下自己感触较深的几点: 并发编程 Go语言层面支持协程,将并发业务逻辑从异步转为同步,大幅提高开发效率; 在c++中,做并发编程目前主流的方案是事件驱动(单线程/多线程/多进程模型等),而事件驱动就需要一个IO多路复用的分发器(select/epoll),这样,就造成了业务逻辑的断开... 阅读全文
posted @ 2016-01-26 18:33 大CC 阅读(13407) 评论(6) 推荐(7) 编辑
摘要: 网络编程中的关键问题总结总结下网络编程中关键的细节问题,包含连接建立、连接断开、消息到达、发送消息等等;连接建立包括服务端接受 (accept) 新连接和客户端成功发起 (connect) 连接。 accept接受连接的问题在本文最后会聊到,这里谈谈connect的关键点; 使用非阻塞连接建... 阅读全文
posted @ 2015-12-31 16:22 大CC 阅读(6457) 评论(0) 推荐(4) 编辑
摘要: Reactor事件驱动的两种设计实现:面向对象 VS 函数式编程 这里的函数式编程的设计以muduo为例进行对比说明; Reactor实现架构对比 面向对象的设计类图如下: 函数式编程以muduo为例,设计类图如下: 面向对象的Reactor方案设计 我们先看看面向对象的设计方案,想想为什么这么做; 阅读全文
posted @ 2015-12-31 07:37 大CC 阅读(5043) 评论(1) 推荐(10) 编辑
摘要: Redis时延问题分析及应对Redis的事件循环在一个线程中处理,作为一个单线程程序,重要的是要保证事件处理的时延短,这样,事件循环中的后续任务才不会阻塞; 当redis的数据量达到一定级别后(比如20G),阻塞操作对性能的影响尤为严重; 下面我们总结下在redis中有哪些耗时的场景及应对方... 阅读全文
posted @ 2015-12-10 22:57 大CC 阅读(13831) 评论(0) 推荐(7) 编辑
木书架 大CC的博客