02 2021 档案
摘要:一、哨兵模式概述 哨兵模式是一种特殊的模式,反客为主自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库。注意:一组sentinel能同时监控多个master。 二、哨兵模式作用 通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。 当哨兵监测到mast
阅读全文
摘要:一、复制原理 slave启动成功连接到master后会发送一个sync命令,master接受到命令后启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,以完成一次完全同步。 二、全量复制 slave服务在收到数据库文件数据后
阅读全文
摘要:薪火相传模式作用: 上一个Slave可以是下一个Slave的Master,Slaver同样可以接受其他Slaves的连接和同步请求,那么该Slave作为了链条中下一个master,可以有效减轻master的写压力。 中途变更转向:会清除之前的数据,重新建立拷贝最新的,用到的命令(slaveof 新主
阅读全文
摘要:一主二仆模式: 现在启动3个Redis服务,端口分别为6379(主)、6380(从)、6381(从)。结构图如下: 这种结构,对应以下常见的的几种情况: (1)使用命令slaveof IP(主库) 端口(主库),使从机复制到主机的数据。 (2)主从复制是主从分离的,所以只有主机(Master)才可以
阅读全文
摘要:一、Redis主从复制介绍 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一
阅读全文
摘要:一、Redis订阅和发布 Redis 通过 PUBLISH 、 SUBSCRIBE 等命令实现了订阅与发布模式, 这个功能提供两种信息机制, 分别是订阅/发布到频道和订阅/发布到模式。 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和
阅读全文
摘要:一、为什么需要锁 在并发环境下,如果多个客户端访问同一条数据,此时就会产生数据不一致的问题,如何解决,通过加锁的机制,常见的有两种锁,乐观锁和悲观锁,可以在一定程度上解决并发访问。 二、悲观锁 悲观锁,正如其名,就是很悲观,每次拿数据库的时候都认为别人会修改。所以每次在拿数据库数据的时候都会上锁,这
阅读全文
摘要:一、Redis事务的概念: Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。 一个队列,一次性、顺序性、排他性的执行一系列命令。 二、Redis事
阅读全文
摘要:一、持久化概述 由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时d
阅读全文
摘要:1、Redis默认不是以守护进程方式运行,可以通过改配置项修改,使用yes启动守护进程。 daemonize no 2、当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定 pidfile /var/run/redis.p
阅读全文
摘要:目录 1、配置文件位置 2、开头说明 3、INCLUDES 4、MODULES 5、NETWORK 6、GENERAL 7、SNAPSHOTTING 8、REPLICATION 9、SECURITY 10、CLIENTS 11、MEMORY MANAGEMENT(内存管理) 12、APPEND ON
阅读全文
摘要:一、键(key) (1) keys * //列出当前数据库中所有的key (2) exists key_name //判断某个key是否存在(3) move key_name dbId //把当前库中的key/value移到另一个库中(4) expire key_value timeLong //给
阅读全文
摘要:1、下载Redis6.0.6 wget http://download.redis.io/releases/redis-6.0.6.tar.gz 2、解压 tar xzf redis-6.0.6.tar.gz 3、安装 切换到解压后的redis目录,直接make 4、配置 解压问redis后,在解压
阅读全文
摘要:一、Redis简介 Redis:Remote Dictionary Server(远程字典服务区),是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,也被称为数据结构服务器。 二、Redis的6个特点 (1)性能高 (2)持久化,可以将内存中的数据保持
阅读全文
摘要:一、存储过程 一组预先编译好的SQL语句的集合,理解成批处理语句,是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。 存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。 存储过程思想上很简单,就是数据库 S
阅读全文
摘要:一、问题案例 张三要给李四转账5元,2人本来都有10元,则在数据库中需要执行2条SQL语句(1)更新张三账户余额为5元。(2)更新李四账户余额为15元。 如果没有事务,当执行第一个SQL语句后,数据库挂掉的话,则导致第二个SQL语句没有执行。 二、事务介绍: 事务由单独单元的一个或多个SQL语句组成
阅读全文
摘要:1、两者之间的区别: 2、MyISAM (1)数据库存储文件 数据库文件一般在数据库安装目录的data文件夹里,前面说过引擎是针对数据库表而言的,如果一张表是MyISAM引擎的话,那么这个表有3个文件, 后缀名分别是:(1).frm(存储表结构)。(2).MYI(index,存储索引)。(3).MY
阅读全文
摘要:数据库引擎 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL的核心就是存储
阅读全文
摘要:一、索引介绍 索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。 索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。索引优化应该是对查询性能优化最有效的手段了。索引
阅读全文
摘要:一:mysql的执行过程 过程: 客户端发送一条查询给服务器; 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段。 服务器段进行SQL解析、预处理,在优化器生成对应的执行计划; mysql根据优化器生成的执行计划,调用存储引擎的API来执行查询。 将结果返回给客户
阅读全文
摘要:一、初级版本 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/poll.h> #include <sys/epoll.h> #include <sys/socke
阅读全文
摘要:#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/poll.h> #include <sys/socket.h> #include <netinet/tcp.h>
阅读全文
摘要:1.select: select本质上是通过设置或者检查存放fd标志位的数据结构数据结构来进行下一步的处理,时间复杂度:O(n) 缺点: 1)、每次调用select,都需要把fd集合从用户态拷贝到内核态,这个开销在fd很多时会很大; 2)、同时每次调用select都需要在内核遍历传递进来的所有fd,
阅读全文
摘要:在windows下使用cmake-gui去创建工程 1、下载安装cmake-gui,链接http://www.cmake.org/cmake/resources/software.html 2、打开界面 3、然后点击Configure,它会让你选择 4、接着点击Generate按钮,就生成工程了。
阅读全文
摘要:1、cmake介绍 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt
阅读全文
摘要:1、常用命令 PROJECT PROJECT(projectname [CXX] [C] [Java]) 指定工程名称,并可指定工程支持的语言。支持语言列表可忽略,默认支持所有语言 SET SET(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]]) 定义变量(可以
阅读全文
摘要:1.makefile介绍 makefile的作用是用来编译管理项目代码,节省编译项目所用的时间,并且一次编写终身受益。 并且由于目标比依赖生成的要晚,更新依赖之后会检测目标或者是依赖的生成的时间,所以即使当 .c 程序被修改之后再次使用 make 命令来运行 makefile 文件的时候,(运行ma
阅读全文
摘要:1.编译过程分为以下: 1) 预编译 将.c 文件转化成 .i文件,使用的gcc命令是:gcc –E对应于预处理命令cpp 2) 编译 将.c/.h文件转换成.s文件,使用的gcc命令是:gcc –S对应于编译命令 cc –S 3) 汇编 将.s 文件转化成 .o文件,使用的gcc 命令是:gcc
阅读全文
摘要:1、模式主要思想: 为其他对象提供一种代理以控制(隔离,使用接口)对这个对象的访问。 2、结构: 3、代码 class ISubject{ public: virtual void process(); }; class RealSubject : public ISubject{ public:
阅读全文
摘要:1、模式主要思想: 将一个类的接口转换成客户希望的另一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器分为(1)类适配器模式,(2)对象适配器模式。 2、结构: 图1:类模式适配器 图2:对象模式适配器 3、代码 Adapter.h: #ifndef _A
阅读全文
摘要:1、模式主要思想: 提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定它们具体的类。 2、结构: 3、代码: #include <string> // 实现导出数据的接口, 导出数据的格式包含 xml,json,文本格式txt 后面可能扩展excel格式csv class IE
阅读全文
摘要:1、模式主要思想: 定义一系列算法,把它们一个个封装起来,并且使它们可以互相替换(变化),该模式使得算法可以独立于使用它的客户程序(稳定)而变化(扩展,子类化) 2.结构图: 3.范例和代码: 计算税收时,每个国家的税收算法是不一样的,比如现在有要计算三个国家的税收,一般情况,不用设计模式时的代码:
阅读全文
摘要:1、模式主要思想: 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使得一个类的实例化延迟(目的:解耦。手段:虚函数)到子类 2、结构: 3、案例和代码 实现导出数据的接口, 导出数据的格式包含 xml,json,文本格式txt 后面可能扩展excel格式csv。
阅读全文
摘要:1、模式主要思想: 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连接成一条链,并沿着这条链传递请求,知道有一个对象处理它为止。 2、结构: 3、代码: #include "stdafx.h" #include <iostream> #include <windo
阅读全文