自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 chapter16 Sentinel

    Sentinel(哨岗,哨兵)是redis高可用性(high availability)解决方案:有一个或多个Sentinel实例(instance)组成的Sentinel系统(system)可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理...

2018-03-30 09:46:35 192

原创 chapter15 复制

15.1 旧版复制功能的实现Redis 的复制功能分为同步(sync)和命令传播(command propagate)两个操作:其中,同步操作用于将从服务器的数据库状态更新至主服务器当前所处的数据库状态。而命令传播操作则用于在主服务器的数据库状态被修改,导致主从服务器的数据库状态出现不一致时,让主从服务器的数据库重新回到一致状态。15.1.1 同步当客户端向从服务器发送 SLAVEOF 命令,要求...

2018-03-29 11:50:43 297

原创 chapter14 服务器

一个命令请求从发送到获得回复的过程中,客户端和服务器需要完成一系列操作。举个例子,如果我们使用客户端执行以下命令:redis> SET KEY VALUEOK那么从客户端发送 SET KEY VALUE 命令到获得回复 OK 期间,客户端和服务器共需要执行以下操作:客户端向服务器发送命令请求 SET KEY VALUE 。服务器接收并处理客户端发来的命令请求 SET KEY VALUE ,...

2018-03-28 15:11:15 273

原创 chapter13 客户端

    Redis服务器是典型的一对多服务器程序:一个服务器可以与多个客户建立网络连接,每个客户端可以向服务器发送命令请求,而服务器则接收并处理客户端发送的命令请求,并向客户端返回命令回复。    通过使用由I/O多路复用技术实现的文件事件处理器,Redis服务器使用单线程单进程的方式来处理命令请求,并与多个客户端进行网络通信。13.1 客户端属性客户端状态包含的属性可以分为两类:一类是比较通用的...

2018-03-28 10:05:49 238

原创 Linux内核编译及系统裁剪

核心:/boot/vmlinuz-version内核模块(ko):/lib/modules/version/内核设计:      单内核            模块化设计      微内核装载模块:       insmod       modprobewww.kernel.org用户空间访问,监控内核的方式:/proc,/sys伪文件系统/proc/sys:此目录中的文件很多是可读写的/sys/...

2018-03-27 16:19:24 10995 1

原创 ssl协议,openssl及私有CA

PKI:Public KeyInfrastructure    CA:Certificate Authority证书格式:x509,pkcs12x509:公钥及有效期限证书的合法拥有者证书该如何被使用CA的信息CA签名的校验码PKI:TLS/SSL:x509PKI:OpenGPG:pki的另一种实现对称加密:  DES:DataEncrption Standard, 56bit 3DES:三次加密...

2018-03-27 14:26:02 432

原创 linux系统启动流程

PC:OS(Linux)POST-->BIOS(BootSequence)-->MBR(bootloader,446)-->Kernel-->initrd-->(ROOTFS)/sbin/init(/etc/inittab)内核设计风格:RedHat,SUSE核心::动态加载内核模块内核:/lib/modules/内核版本号命名的目录/vmlinuz-2.6.32/l...

2018-03-27 13:50:11 318

原创 Linux进程管理

进程及作业管理Uninterruptible sleep: 不可中断的睡眠Interruptible sleep:可中断睡眠COW: Copy On Write, 写时复制100-139:用户可控制0-99:内核调整的O:    O(1)    O(n)    O(logn)    O(n^2)    O(2^n)init: 进程号为1优先级越高:  1.获得更多的cpu运行时间  2.更优先获得...

2018-03-27 13:24:15 474

原创 Linux软件管理

软件包管理应用程序:程序:Architercturec语言:源代码-->(编译)二进制格式脚本:解释器(二进制程序)源代码-->编译-->链接-->运行程序:   库:程序开发依赖库      静态      动态      静态链接           动态链接:利用共享库程序:指令+数据text 代码段Data+bss 初始化为0的变量heap 堆stack 栈配置文件...

2018-03-27 09:49:12 412

原创 Linux网络配置

网络及网络配置00000001 . 0000 00011111 1111 .0000 00000000 0001 .0000 00100000 0001 .0000 00001.01.1 --> 2.11.0 1.1 --> 1.21.0  1.0IPv4点分十进制:0000 0000 -1111 11110-255 221.34.23.12网络地址:主机地址: 32位二进制 A类: ...

2018-03-27 09:33:42 318

原创 LVM

MD  /dev/md#  meta deviceDM:Device Mapper 逻辑设备  RAID,LVM2vgcreate VG_NAME /PATH/TO/pv   -s#:pe大小10G,VGfdisk /dev/sdan+7Gn+3Gn+5Gt10L8et118et128ewpartprobe /dev/sdacat /proc/partitionspvcreate /dev/sda...

2018-03-27 09:14:32 272

原创 Raid及radma命令

IDE:133MbpsSATA:300Mbps,600Mbps,6GbpsUSB3.0:480MbpsSCSI:Small Computer System Interface    10000,15000          RAID:  级别:仅代表磁盘组织方式不同,没有上下之分;0: 条带         性能提升: 读,写         冗余能力(容错能力): 无         空间利用率...

2018-03-27 09:09:38 958

原创 Linux压缩及归档

压缩,解压缩命令压缩格式:gz,bz2,xz,zip,z压缩算法:算法不同,压缩比也会不同compress:FILENAME.zuncompressxz,bz2,gzgzip:.gz     gzip /PATH/TO/SOMEFILE:压缩完后会删除源文件     -d:解压缩     -#:1-9 指定压缩比,默认是6gunzip:     gunzip /PATH/TO/SOMEFILE.g...

2018-03-27 08:59:32 339

原创 磁盘及文件系统管理详解

磁盘管理:机械式硬盘:  U盘,光盘,软盘,硬件,磁带  低级格式化partition  分区创建文件系统MBR:主引导记录(0盘面0磁道0扇区512byte,属于磁盘的,独立于操作系统之外)    Master Boot Record    Main Boot Record      446byte:BootLoader,程序,引导加载器      64bytes:        16:表示一个...

2018-03-27 00:06:47 1424

原创 特殊权限SUID,facl,Linux终端

特殊权限passwd:sSUID: 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者;    chmod u+s FILE    chmod u-s FILE        如果FILE本身原来就有执行权限,则SUID显示为s;否则显示S;SGID: 运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组;    chmod g+s FILE    chmod g...

2018-03-26 23:16:09 171

原创 find命令

grep,egrep,fgrep:文本查找文件查找:locate:   非实时,模糊匹配,查找是根据全系统文件数据库进行的# updatedb,手动生成文件数据库速度快find:    实时    精确    支持众多查找标准    遍历指定目录中的所有文件完成查找,速度慢find 查找路径 查找标准 查找到以后的处理运作查找目录:默认为当前目录查找标准:默认为指定路径下的所有文件处理运作:默认为...

2018-03-26 22:55:00 651

原创 VIM编辑器

vim编辑器文本编辑器,字处理器ASCIIvi:Visual Interfacevim:VI iMproved全屏编辑器 模式化编辑器vim模式编辑模式(命令模式)输入模式末行模式模式转换:  编辑->输入:    i:在当前光标所在字符的前面,转为输入模式    a:在当前光标所在字符的后面,转为输入模式    o:在当前光标所在行的下方,新建一行,并转为输入模式        I:在当前...

2018-03-26 22:35:58 161

原创 Sed命令用法

sed:Stream EDitor     行编辑器(全屏编辑器:vi)sed:模式空间默认不编辑源文件,仅对模式空间中的数据做处理而后,处理结束后,将模式空间打印至屏幕sed [options] 'Address Command' file ....    -n:静默模式,不显示模式空间内容    -i:直接修改源文件    -e script -e script:可以同时执行多个脚本    -...

2018-03-26 21:11:57 2747 1

原创 Shell编程

编译器,解释器编程语言:机器语言,汇编语言,高级语言静态语言:编译型语言      强类型(变量)      事先转换成可执行格式      C,C++,JAVA,C#动态语言:解释型语言 on the fly      弱类型      边解释边执行      PHP,SHELL,Python,perl面向过程:shell,c面向对象:JAVA,python,perl,c++变量:内存空间,命名...

2018-03-26 20:39:10 799

原创 grep及正则表达式

grep, egrep, fgrep    grep: 根据模式搜索文本,并将符合模式的文本行显示出来。Pattern: 文本字符和正则表达式的元字符组合而成匹配条件grep [options] PATTERN [FILE...]    -i    --color    -v: 显示没有被模式匹配到的行    -o:只显示被模式匹配到的字符串*: 任意长度的任意字符?: 任意单个字符[]:[^]:...

2018-03-26 16:42:44 367

原创 Linux操作系统基础及常用命令

计算机体系结构:    运算器,控制器,存储器,内存,编址,输出设备,输入设备POST:BIOS 自举程序:指令+数据RAM,ROM硬件架构:ARM,x86,x64 安腾,alpha,UltraSparc,Power,M68000,M68K,PowerPCOS:Windows,Linux,Unix(HP-UX,Solaris,AIX,SCO UNIX,Unixware),OS/2内核功能:进程管理...

2018-03-26 15:28:14 2571

原创 chapter12 事件

Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件:文件事件(file event):Redis服务器通过套接字与客户端(或者其他Redis服务器)进行连接,而文件事件就是服务器对套接字操作的抽象。时间事件(time event):Redis服务器中的一些操作(比如serverCron函数)需要在给定的时间点执行,而时间事件就是服务器对这类定时操作的抽象。12.1 文件事件    Re...

2018-03-26 00:33:06 282

原创 chapter11 AOF持久化

    除了RDB持久化功能之外,Redis还提供了AOF(Append Only File)持久化功能。与RDB持久化通过保存数据库中的键值对来记录数据库状态不同,AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的,如图11-1所示。    举个例子,如果我们对空白数据库执行以下命令,那么数据库中将包含三个键值对:redis>set msg "hello"OKred...

2018-03-25 18:34:44 196

原创 chapter10 RDB持久化

    Redis是一个键值对数据库服务器,服务器中通常包含着任意个非空数据库,而每个非空数据库中又可以包含任意个键值对,为了方便起见,我们将服务器中的非空数据库以及它们的键值对统称为数据库状态。    举个例子,图10-1展示了一个包含三个非空数据库的Redis服务器,这三个数据库以及数据库中的键值对就是该服务器的数据库状态。    因为Redis是内存数据库,它将自己的数据库状态储存在内存里面...

2018-03-25 12:05:15 217

原创 chapter9 数据库

9.1 服务器中的数据库    Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,db数组的每个项都是一个redis.h/redisDb结构,每个redisDb结构代表一个数据库:struct redisServer { // ... // 一个数组,保存着服务器中的所有数据库 redisDb *db; // ...};    ...

2018-03-25 00:38:33 307

原创 chapter8 对象

    Redis并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这个系统包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象这五种类型的对象,使用对象的一个好处是,我们可以针对不同的使用场景,为对象设置多种不同的数据结构实现,从而优化对象在不同场景下的使用效率。    除此之外,Redis的对象还实现了基于引用计数技术的内存回收机制,当程序不再使用某个...

2018-03-22 18:45:48 193

原创 chapter7 压缩列表

    压缩列表(ziplist)是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表键,并且每个列表项要么就是小整数值,要么就是长度比较短的字符串,那么Redis就会使用压缩列表来做列表键的底层实现。    另外,当一个哈希键只包含少量键值对,并且每个键值对的键和值要么就是小整数值,要么就是长度比较短的字符串,那么Redis就会使用压缩列表来做哈希键的底层实现。7.1 压缩列表的构成   ...

2018-03-22 15:57:42 175

原创 chapter6 整数集合

6.1 整数集合的实现    整数集合(intset)是Redis用于保存整数值的集合抽象数据结构,它可以保存类型为int16_t,int32_t或者int64_t的整数值,并且保证集合中不会出现重复元素。    每个intset.h/intset结构表示一个整数集合:typedef struct intset{ // 编码方式 uint32_t encoding; // 集合包含的元...

2018-03-22 12:22:26 178

原创 chapter5 跳跃表

    跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。    跳跃表支持平均O(logN),最坏O(N)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。    在大部分情况下,跳跃表的效率可以和平衡树相媲美,并且因为跳跃表的实现比平衡树要来的更为简单,所以有不少程序都使用跳跃表来代替平衡树。    Redis使用跳跃表...

2018-03-21 23:56:39 252

原创 chapter4 字典

    字典,又称为符号表(symbol table),关联数组(associative array)或映射(map),是一种用于保存键值对(key-value pair)的抽象数据结构。    在字典中,一个键(key)可以和一个值(value)进行关联(或者说将键映射为值),这些关联的键和值就称为键值对。    字典在Redis中的应用相当广泛,比如Redis的数据库就是使用字典作为底层实现的...

2018-03-21 22:40:00 170

原创 chapter3 链表

    作为一种常用的数据结构,链表内置在很多高级的编程语言里面,因为Redis使用的C语言并没有内置这种数据结构,所以Redis构建了自己的链表实现。    链表在Redis中的应用非常广泛,比如列表键的底层实现之一就是链表。当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis就会使用链表作为列表键的底层实现。    举个例子,以下展示的integers列表...

2018-03-21 19:48:59 156

原创 chapter2 简单动态字符串

http://blog.csdn.net/andrewlee_/article/details/70036755    Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组,以下简称C字符串),而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)类型,并将SDS作为Redis的默认字符串表示。    在Redis里面,C字符串只会作为字符串字面...

2018-03-21 01:53:25 237

原创 chapter6 特殊的索引和集合

6.1固定集合    MongoDB中的"普通"集合是动态创建的,而且可以自动增长以容纳更多的数据。MongoDB中还有另一种不同类型的集合,叫做固定集合,固定集合需要事先创建好,而且它的大小是固定的。    固定集合的访问模式与MongoDB中的大部分集合不同:数据被顺序写入磁盘上的固定空间。因此它们在蝶式磁盘(spinning disk)上的写入速度非常快,尤其是集合拥有专用磁盘时(这样就不会...

2018-03-20 16:49:10 188

原创 chapter5 索引

5.1 索引简介    数据库索引与书籍的索引类似。有了索引就不需要翻整本书,数据库可以直接在索引中查找,在索引中找到条目以后,就可以直接跳到目标文档的位置,这能使查询速度提高几个数量级。不使用索引的查询称为全表扫描。> for(i=0;i<200;i++){... db.users.insert(... {... "i":i,... "us...

2018-03-20 12:31:03 371

原创 chapter4 查询

4.1 find简介    MongoDB中使用find来进行查询。查询就是返回一个集合中文档的子集,子集的范围从0个文档到整个集合。find的第一个参数决定了要返回那些文档,这个参数是一个文档,用于指定查询条件。>db.c.find()    将批量返回集合c中的所有文档。    想要查找"age"值为27的所有文档,直接将这样的键/值对写进查询文档就好了:>db.users.fin...

2018-03-19 22:19:11 191

原创 chapter3 创建、更新和删除文档

3.1 插入并保存文档> db.foo.insert({"bar",:"baz"})这个操作会给文档自动增加一个"_id"键(要是原来没有的话),然后将其保存到MongoDB中。3.1.1 批量插入> db.foo.insert([{"_id":0},{"_id":1},{"_id":2}])BulkWriteResult({ "wr

2018-03-19 18:34:33 780

原创 chapter2 MongoDB基础知识

文档是MongoDB中数据的基本单元,非常类似于关系型数据管理系统的行,但更具表现力类似地,集合(collection)可以看做是一个拥有动态模式(dynamic schema)的表MongoDB的一个实例可以拥有多个相互独立的数据库(database),每一个数据库都拥有自己的集合。每一个文档都有一个特殊的键,"_id",这个键在文档所属的集合中是唯一的。MongoDB自带了一个简单但功能强大的...

2018-03-18 23:40:24 335

原创 chapter1 MongoDB简介

1.1 易于使用    MongoDB是一个面向文档(document-oriented)的数据库,而不是关系型数据库。不采用关系模型主要是为了获得更好的扩展性。当然,还有其他一些好处。    与关系型数据库相比,面向文档的数据库不再有"行"(row)的概念,取而代之的是更为灵活的"文档"(document)模型。通过在文档中嵌入文档和数组,面向文档的方法能够仅使用一条记录来表现复杂的层次关系,这...

2018-03-18 21:36:14 191

原创 awk入门及进阶

awk:报告生成器    格式化以后,显示AWK a.k.a. Aho,Kernighan and Weinbergernew awk:nawkgawk# awk [options] 'script' file1,file2,...# awk [options] 'PATTERN { action }' file1,file2,...     print, printf[root@localhos...

2018-03-14 14:02:36 357

空空如也

空空如也

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

TA关注的人

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