自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (5)
  • 收藏
  • 关注

原创 慢查询日志

redis的慢查询日志:用于记录执行时间超过给定时长的命令请求,用户可以通过慢查询日志来监视和优化查询速度。两个服务器配置选项: slowlog-log-slower-than 选项:指定执行时间超过多少微妙的命令请求会被记录到日志上。slowlog-max-len 选项:指定服务器最多保存多少条慢查询日志。redis> CONFIG SET slowlog-log-slower-than

2016-05-31 17:36:42 261

原创 事务

事务:提供一种将多个命令请求打包,然后一次性、按顺序地执行多个命令的机制,并且在事务执行期间,服务器不会中断事务而改去执行其他客户端的命令请求,它将事务中的所有命令都执行完毕,然后才会处理其他客户端的命令请求。1. 事务的实现三个阶段:1.1 MULTI命令:事务的开始执行该命令的客户端从非事务状态切换至事务状态,在客户端状态的flags属性中打开REDIS_MULTI标识完成.127.0.0.1

2016-05-30 13:03:46 306

原创 发布与订阅

redis的发布与订阅功能由PUBLISH、SUBSCRIBE、PSUBSCRIBE命令组成。1. 频道的订阅与退订(1)SUBSCRIBE命令:客户端可以订阅一个或多个频道,从而成为这些频道的订阅者(subscriber):每当有其他客户端向被订阅的频道发送消息(message)时,频道的所有订阅者都会收到这条消息。127.0.0.1:6379> SUBSCRIBE "news.it"Read

2016-05-29 16:53:55 704

原创 主从服务器(复制)

redis中,用户可以通过执行SLAVEOF 命令或设置slaveof选项,让一个服务器复制另一个服务器。主服务器(master):被复制的服务器。从服务器(slave):对主服务器进行复制的服务器。主从服务器双方数据库状态一致。127.0.0.1:12345> SLAVEOF 127.0.0.1 63791. 旧版复制功能的实现 redis的复制功能分为两个操作: 1. 同步(sy

2016-05-29 15:44:29 2204

原创 redis事件

redis服务器是一个事件驱动程序,服务器需要处理两类事件:文件事件,时间事件。1. 文件事件转载于:http://redisbook.com/preview/event/file_event.html redis服务器通过套接字与客户端进行连接,而文件事件就是服务器对套接字操作的抽象。文件事件结构:ae.h/aeFileEvent/* File event structure * *

2016-05-29 11:26:22 682

原创 客户端

redis服务器是一个典型的一对多服务器程序,通过I/O多路复用技术实现的文件事件处理器,redis服务器使用单线程单进程的方式来处理命令请求,并于多个客户端进行网络通信。1. 客户端状态及属性redis.h/redisClient结构,保存了客户端当前的状态信息,以及执行相关功能时需要用到的数据结构,/* With multiplexing we need to take per-client s

2016-05-27 11:41:20 396

原创 服务器

redis服务器负责与多个客户端建立网络连接,处理客户端发送的命令请求,在数据库中保存客户端执行命令所才参数的数据,并通过资源管理来维持服务器自身的运转。1. 命令请求的执行过程以SET命令为例:redis> SET key valueredis> OK1.1 发送命令请求1.2读取命令请求当客户端与服务器之间的连接套接字因为客户端的写入而变的可读时,服务器将调用命令请求处理器来执行如下操作:

2016-05-27 11:18:35 5246

原创 计算机网络面试题总结

七层/五层/四层网络模型OSI ( Open System Interconnect ):开放系统互联,是一个七层的计算机网络模型,分别为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 TCP/IP ( Transmission Control Protocol/Internet Protocol ):传输控制协议 / 因特网互联协议,是一个四层的计算机网络模型,分别为:网络接口层

2016-05-26 17:16:43 972

原创 数据库

1、服务器中的数据库redis数据库将所有数据库保存在redis.h/redisServer结构的redisDb *db 数组中。db数组的每一项都是一个redis.h/redisDb结构,每个redisDb结构代表一个数据库.struct redisServer { //... // 数据库 redisDb *db; //服务器的数据库数量 int dbnum;

2016-05-25 17:32:57 388

原创 对象

Redis 用到的所有主要数据结构:简单动态字符串(SDS)、双端链表、字典、压缩列表、整数集合, 等等。Redis 并没有直接使用这些数据结构来实现 键值对数据库, 而是基于这些数据结构创建了一个对象系统,包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象这五种类型的对象, 每种对象都用到了至少一种我们前面所介绍的数据结构。除此之外, Redis 的对象系统还实现了基于引用计数技术的内存回

2016-05-25 16:55:30 428

转载 ubuntu下安装redis

Ubuntu 下安装 在 Ubuntu 系统安装 Redi 可以使用以下命令:$sudo apt-get update$sudo apt-get install redis-server启动 Redis$ redis-server查看 redis 是否启动?$ redis-cli以上命令将打开以下终端:redis 127.0.0.1:6379>127.0.0.1 是本机 IP ,6379 是 r

2016-05-25 15:36:56 279

原创 面试题:vector/map/红黑树/散列表

1、vector的实现原理 vector的数据安排以及操作方式,与array非常相似。两者的唯一区别在于空间的运用的灵活性。array是静态空间,一旦配置了就不能改变;vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素。因此,vector的运用对于内存的合理利用与运用的灵活性有很大的帮助。 vector的实现技术,关键在于其对大小的控制以及重新配置时的数据移

2016-05-24 21:09:04 2795

原创 redis内存编码数据结构(整数集合、压缩列表)

1、整数集合整数集合(intset)是 Redis 用于保存整数值的集合抽象数据结构, 它可以保存类型为 int16_t 、 int32_t 或者 int64_t 的整数值, 并且保证集合中不会出现重复元素。typedef struct intset { // 编码方式 uint32_t encoding; /* contents 数组并不保存任何 int8_t 类型的值 ——

2016-05-24 20:24:10 614

原创 数据结构与对象

第 1 步:阅读数据结构实现 刚开始阅读 Redis 源码的时候, 最好从数据结构的相关文件开始读起, 因为这些文件和 Redis 中的其他部分耦合最少, 并且这些文件所实现的数据结构在大部分算法书上都可以了解到, 所以从这些文件开始读是最轻松的、难度也是最低的。下表列出了 Redis 源码中, 各个数据结构的实现文件:文件 内容 sds.h 和 sds.c Redis 的动态字符串实现。

2016-05-24 17:08:13 525

原创 《Redis设计与实现》资源总结

转自: 《Redis 设计与实现》一书全面而完整地讲解了 Redis 的内部运行机制, 对 Redis 的大多数单机功能以及所有多机功能的实现原理进行了介绍, 展示了这些功能的核心数据结构以及关键的算法思想。 书本网站:http://redisbook.com/带注释的源码 为了帮助有需要的读者进一步了解 Redis 的实现细节, 本书附带了一份包含详细中文注释的 Redis 3.0 版本源码

2016-05-24 15:59:44 853

原创 linux命令总结

(1) tcpdump dump the traffic on a network 根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 http://www.cnblogs.com/ggjucheng/archiv

2016-05-24 09:46:20 249

转载 录制vb之文件转换

1、单个文件*.vbOption Strict OffImports SystemImports System.Collections.GenericImports NXOpenImports NXOpen.UFModule Module1 Dim theSession As Session = Session.GetSession() Dim theUfSession As

2016-05-21 17:35:08 758

原创 strlen/strcmp/strcat/strcpy的实现

1. strlen#include <cstddef>size_t strlen(const char* p){ if(p==NULL){ return 0; } size_t len=0; while((*p++)!='\0'){ len++; } return len;}strlen 与 sizeof 的区别:

2016-05-19 19:12:28 433

转载 面试题49:把字符串转换成整数

转自《剑指offer》// StringToInt.cpp : Defines the entry point for the console application.//// 《剑指Offer——名企面试官精讲典型编程题》代码// 著作权所有者:何海涛#include "stdafx.h"#include <stdio.h>#include <stdlib.h>long long StrT

2016-05-19 10:28:39 802

原创 C++primer

1.带符号类型和无符号类型混合运算时,带符号数会自动转换成无符号数。 2.true和false 是布尔类型的字面值,nullptr是指针字面值。 C++程序最好使用nullptr,同时尽量避免使用NULL。#include <cstdlib>#define NULL 03.指定字面值的类型,如L'a' //宽字符型字面值,wchar_t4.定义于函数体内的内置类型的对象如果没有初始化,则其值

2016-05-18 21:38:01 419

原创 面试题17:合并两个排序链表

/************************************************************************* > Created Time: Tue 17 May 2016 05:20:54 PM PKT ************************************************************************/

2016-05-17 21:03:36 267

原创 修改环境变量为当前工作目录的.bat文件

change_ugii_user_dir.bat文件%修改环境变量为当前工作目录%%只有以管理员身份运行才能起作用%@echo offset workdir=%~dp0set workdir=%workdir:~0,-1%echo 当前工作目录:%workdir%echo 修改UGII_USER_DIR为当前工作目录setx UGII_USER_DIR %workdir% /Mset U

2016-05-17 20:10:28 4934

原创 原码、反码、补码、有符号数和无符号数运算

原码原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:[+1]原 = 0000 0001[-1]原 = 1000 0001第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:[1111 1111 , 0111 1111]即[-127 , 127]原码是人脑最容易理解和计算的表示方式.反码反码的表示方法是:正数的反码是其本身负数的反

2016-05-13 11:32:12 6331

转载 使用GDB调试器

很多内容转自:http://blog.csdn.net/haoel/article/details/2880GDB可以观察正在运行的程序,同时又对程序的执行有相当的控制,这使得研究程序的行为成为可能。1. 启动GDBunix-> gdb prog//prog为程序名,eg:helloworld2. GDB命令示例3. GDB中运行UNIX的shell程序shell <command string>

2016-05-13 10:39:41 468

原创 面试题35:第一个只出现一次的字符

题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。/************************************************************************* > Created Time: Tue 10 May 2016 12:17:48 PM PKT *******************************

2016-05-10 15:49:19 265

原创 面试题34:丑数

问题描述: 我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第1500个丑数。方法一:遍历/************************************************************************* > Created Ti

2016-05-10 11:32:37 993

转载 C/C++可变参数va_list

VA_LIST 是在C语言中解决变参问题的一组宏,可变参数即表示参数个数、类型可以变化。可变参数的每个参数并没有实际的名称与之相对应,用起来是很灵活。 可变参数是实现printf(),sprintf()等函数的关键之处,也可以用可变参数来对任意数量的数据进行求和,求平均值带来方便(不然就用数组或每种写个重载)。#include <stdarg.h> //头文件(必需)int AveInt(int

2016-05-07 19:17:56 2744 1

原创 Nginx启动流程

启动流程图如下:Nginx启动时框架的处理流程: (1)在Nginx启动时,首先会解析命令行,处理各种参数。 Nginx是以配置文件作为核心提供服务的。 配置文件nginx.conf的路径。 (2)平滑升级,不重启master进程而启动新版本的Nginx程序。 Nginx是通过环境变量来传递某些信息。 (3)调用ngx_init_cycle方法,初始化。 (4)调用 配置模块 提供的

2016-05-06 15:53:34 755

转载 nginx源码学习资源

主要转自“轩脉刃de刀光剑影”的博客之“nginx源码学习资源” http://www.cnblogs.com/yjf512/archive/2012/06/13/2548515.html(1)注释版的nginx源码链接:https://github.com/jianfengye/nginx-1.0.14_comment(2)nginx的main函数在哪?src/core/nginx.c(3)ng

2016-05-06 15:20:31 380

原创 第2章 Nginx的配置

1. nginx进程间的关系使用一个master进程管理多个worker进程,一般情况下,worker进程的数量与服务器上的CPU核心数相等(进程间切换的代价是最小的)。 好处是: ①master进程不会对用户请求提供服务,只用于管理正真提供服务的worker进程。 ②多个worker进程处理互联网请求不但可以提高服务的健壮性,还可以充分利用现在常见的SMP多核架构,从而实现微观上正真的多核并

2016-05-06 14:56:18 250

转载 Nginx安装

1.Nginx安装我使用的环境是64位 Ubuntu 14.04。nginx依赖以下模块:l gzip模块需要 zlib 库l rewrite模块需要 pcre 库l ssl 功能需要openssl库1.1.安装pcre 1. 获取pcre编译安装包,在http://www.pcre.org/上可以获取当前最新的版本解压缩pcre-xx.tar.gz包。进入解压缩目录,执

2016-05-06 09:56:11 317

原创 生产者-消费者问题(producer-consumer-problem)

生产者消费者问题是一个著名的线程同步问题,问题描述如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个具有多个缓冲区的缓冲池,生产者将它生产的产品放入一个缓冲区中,消费者可以从缓冲区中取走产品进行消费,显然生产者和消费者之间必须保持同步,即不允许消费者到一个空的缓冲区中取产品,也不允许生产者向一个已经放入产品的缓冲区中再次投放产品。简化

2016-05-05 10:10:40 2814

原创 面试题32:在从1到n的正数中1出现的次数

1、方法一:class Solution1 {public: int NumberOf1OfN(int n) { int cnt=0; while(n!=0){ if(n%10==1){ cnt++; } n=n/10; }

2016-05-04 22:05:42 459

原创 多线程笔试面试题汇总

1. 问答题1.1 线程与进程的区别?(1)进程是出于执行期的程序以及相关资源的总称。 线程是在进程中活动的对象,可以理解为进程中执行的一段程序片段。 (2)内容 进程 线程 地址空间 程序计数器 全局变量 寄存器 打开文件 堆栈 子进程 状态 信号与信号处理程序 (3)  a.进程是资源分配的基本单位,线程是cpu调度,或者说是程序执行的最小单

2016-05-04 17:21:23 1534

原创 面试题45:圆圈中最后剩下的数字(约瑟夫环问题)

题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。1、大部分面试官只要求应聘者基于环形链表的方法解决这个问题。/************************************************

2016-05-04 09:35:33 862

Visual_Assist_X

该助手适用于VS2013和VS2012等最新vs编译器,方便使用,破解版。

2016-01-15

深度探索C++对象模型

这本书探索“对象导向程序所支持的C++对象模型”下的程序行为。对于“对象导向性质之基础实现技术”以及“各种性质背后的隐含利益交换”提供一个清楚的认识。检验由程序变形所带来的效率冲击。提供丰富的程序范例、图片,以及对象导向观念和底层对象模型之间的效率测量。

2015-11-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除