摘要: 0. 前言 Hiredis是一个Redis的C客户端库函数,基本实现了Redis的协议的最小集。这里对hiredis的api作基本的介绍以及应用,主要参考hiredis的README文件以及相关源码。1. 同步APIredisContext,该库的上下文环境。 1 /* Context for a... 阅读全文
posted @ 2015-09-16 19:29 Jabnih 阅读(17147) 评论(0) 推荐(0) 编辑
摘要: 0. 前言 观察者模式在许多地方都能够用到,特别是作为MVC模式的一部分,在MVC中,模型(M):存放数据,视图(V):显示数据。当模型中的数据发生改变时,视图会得到通知,这是典型的观察者模式。1. 定义 观察者模式:定义了一对多的关系,一个对象作为主题,它维护了一系列的依赖对象,当主题的状态发... 阅读全文
posted @ 2015-09-16 08:27 Jabnih 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 0. 前言 最近在重构公司的一个项目的时候,在抽取DES加密重复部分代码的时候,突然间想起了策略模式,感觉策略模式好像可以应用上,于是重新学习了下策略模式。注:在DES加密中,有DES和TDES算法,其中又有各种分组模式,如EBC,CBC等。1. 定义 引用百度定义:策略模式,定义了一系列的算法... 阅读全文
posted @ 2015-09-09 22:23 Jabnih 阅读(433) 评论(0) 推荐(0) 编辑
摘要: 0. 前言 这篇博客仅用于记录个人在工作中用到的一个小工具,后续用到别的会再补充。1. Tmux 终端分用器(multiplexer),可以在一个屏幕上创建多个终端,这个工具也可以用于结对编程。 个人用途:1. 在一个屏幕中开启多个终端(因为个人使用的是24寸屏) 2. 保存工作环... 阅读全文
posted @ 2015-09-07 20:06 Jabnih 阅读(548) 评论(0) 推荐(1) 编辑
摘要: 0. 前言 Redis在封装事件的处理采用了Reactor模式,添加了定时事件的处理。Redis处理事件是单进程单线程的,而经典Reator模式对事件是串行处理的。即如果有一个事件阻塞过久的话会导致整个Redis被阻塞。 对于Reactor模式,可以查看维基百科。(这里推荐一本书:《面向模式的... 阅读全文
posted @ 2015-08-20 20:21 Jabnih 阅读(2913) 评论(0) 推荐(0) 编辑
摘要: 0. 前言 最近在处理公司遗留项目的时候发现自己对TCP协议一点都不懂,所以补了点关于TCP连接的建立和终止的内容,这里简单写下自己了解的部分,省略了报文序号确认序号这些无关的字段,主要讨论TCP状态的转换以及Linux下的一些问题。 对于这篇文章来说,主要是记录自己遇到的一些问题以及学习到的一... 阅读全文
posted @ 2015-08-18 23:52 Jabnih 阅读(1953) 评论(6) 推荐(4) 编辑
摘要: 0. 背景 公司的服务器后台部署在某一个地方,接入的是用户的APP,而该地方的网络信号较差,导致了服务器后台在运行一段时间后用户无法接入,那边的同事反馈使用netstat查看系统,存在较多的TCP连接。1. 问题分析 首先在公司内部测试服务器上部署,使用LoadRunner做压力测试,能正常运行... 阅读全文
posted @ 2015-08-17 23:37 Jabnih 阅读(2494) 评论(5) 推荐(5) 编辑
摘要: 0. 前言 Redis 中的链表是以通用链表的形式实现的,而对于链表的用途来说,主要的功能就是增删改查,所以对于查找来说,redis其提供了一个match函数指针,用户负责实现其具体的匹配操作,从而实现通用化。 涉及的文件:adlist.h/adlist.c1. 数据结构typedef stru... 阅读全文
posted @ 2015-08-16 15:24 Jabnih 阅读(1114) 评论(0) 推荐(0) 编辑
摘要: 0. 前言 这里对Redis底层字符串的实现分析,但是看完其实现还没有完整的一个概念,即不太清楚作者为什么要这样子设计,只能窥知一点,需要看完redis如何使用再回头来体会,有不足之处还望告知。 涉及文件:sds.h/sds.c1. 数据结构: 1 typedef char *sds;2 3 ... 阅读全文
posted @ 2015-08-15 22:25 Jabnih 阅读(1147) 评论(0) 推荐(0) 编辑
摘要: 0. 前言: 这篇文章旨在对redis环境的搭建以及对redis有个大概的认识。一.redis搭建: 环境:ubuntu 14 软件包:redis-3.0.3.tar.gz安装步骤: 1. 首先解压redis源码包 2. 进入目录redis-3.0.3,使用make编译源码 3. 编... 阅读全文
posted @ 2015-08-15 17:03 Jabnih 阅读(467) 评论(0) 推荐(0) 编辑