摘要: 除了RDB持久化之外,Redis还提供了AOF(Append Only File)持久化功能。与RDB持久化通过保存数据库中键值对来保存数据库的状态不同,AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库的状态。被写入AOF文件的所有命令都是以Redis的命令请求协议格式保存的,该格式 阅读全文
posted @ 2017-09-17 17:42 harvyxu 阅读(1456) 评论(0) 推荐(0) 编辑
摘要: 1 RDB持久化简介 Redis是一个键值对数据库服务器,服务器中通常包含任意个非空的数据库,每个非空的数据库又包含任意个键值对。为方便起见,我们将非空数据库及它们的键值对统称为数据库状态。RDB是Redis持久化方式的一种,可以将Redis在内存中的数据库状态保存到磁盘中,避免意外丢失。 RDB持 阅读全文
posted @ 2017-09-16 10:23 harvyxu 阅读(1030) 评论(0) 推荐(0) 编辑
摘要: 1 简介 Redis服务器是一个事件驱动程序,主要处理以下两类事件: 文件事件(file event):Redis服务器通过套接字与客户端进行连接,而文件事件就是对套接字操作的抽象,可以将其理解为IO事件;Redis将产生事件套接字放入一个就绪队列中,即redisServer.aeEventLoop 阅读全文
posted @ 2017-09-15 22:14 harvyxu 阅读(684) 评论(0) 推荐(0) 编辑
摘要: 两个字符串的编辑距离-动态规划方法[转载] 概念 字符串的编辑距离,又称为Levenshtein距离,由俄罗斯的数学家Vladimir Levenshtein在1965年提出。是指利用字符操作,把字符串A转换成字符串B所需要的最少操作数。其中,字符操作包括: 删除一个字符 a) Delete a c 阅读全文
posted @ 2017-09-14 23:24 harvyxu 阅读(3702) 评论(0) 推荐(0) 编辑
摘要: 1 模型简介 Redis没有使用第三方的libevent等网络库,而是自己开发了一个单线程的Reactor模型的事件处理模型。而Memcached内部使用的libevent库,多线程模型。 综合对比可见:nginx,memcached,redis网络模型总结 Redis在主循环中统一处理文件事件和时 阅读全文
posted @ 2017-09-09 21:32 harvyxu 阅读(4529) 评论(0) 推荐(0) 编辑
摘要: 1 Reactor模型 Reactor模式是处理并发I/O比较常见的一种模式,用于同步I/O,中心思想是将所有要处理的I/O事件注册到一个中心I/O多路复用器上,同时主线程/进程阻塞在多路复用器上;一旦有I/O事件到来或是准备就绪(文件描述符或socket可读、写),多路复用器返回并将事先注册的相应 阅读全文
posted @ 2017-09-09 17:25 harvyxu 阅读(13961) 评论(0) 推荐(1) 编辑
摘要: select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说 阅读全文
posted @ 2017-09-07 00:24 harvyxu 阅读(475) 评论(0) 推荐(0) 编辑
摘要: epoll 或者 kqueue 的原理是什么? 【转自知乎】 Epoll 引入简介 首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。之后我们来讨论I/O的操作,通过read,我们可以从流中读 阅读全文
posted @ 2017-09-06 23:14 harvyxu 阅读(1797) 评论(0) 推荐(0) 编辑
摘要: 题目:Generate Parentheses 描述:给定一个非负整数n,生成n对括号的所有合法排列。[转载] 解答: 该问题解的个数就是卡特兰数,但是现在不是求个数,而是要将所有合法的括号排列打印出来。 该问题和《编程之美》的买票找零问题一样,通过买票找零问题我们可以知道,针对一个长度为2n的合法 阅读全文
posted @ 2017-09-06 22:33 harvyxu 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 1. epoll 简介 epoll是在2.6内核中提出的,是之前的select和poll的增强版本。与poll/select不同,epoll不再是一个单独的系统调用,而是由epoll_create/epoll_ctl/epoll_wait三个系统调用组成。相对于select和poll来说,epoll 阅读全文
posted @ 2017-09-06 00:06 harvyxu 阅读(209) 评论(0) 推荐(0) 编辑