自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用cout时没有与这些操作符匹配的“<<”的运算符

问题原因:未引入string头文件。解决:引入#include。

2022-11-28 11:20:08 433 1

原创 Redis系列(三)存储原理与数据模型

redis时key-value的结构,其中value包含:字典,双向链表,压缩列表,调表,整数数组,动态字符串。

2022-11-01 00:29:43 280

原创 Mysql(四)缓存策略

由于 mysql 的缓冲层不由用户来控制,也就是不能由用户来控制缓存具体数据;访问磁盘的速度比较慢,尽量获取数据从内存中获取;主要解决读的性能;因为写没必要优化,必须让数据正确的落盘;如果写性能出现问题,那么可以使用横向扩展集群方式来解决;项目中需要存储的数据应该远大于内存的容量,同时需要进行数据统计分析,所以数据存储获取的依据应该是关系型数据库;缓存数据库可以存储用户自定义的热点数据;以下的讨论都是基于热点数据的同步问题;

2022-10-30 23:31:06 364

原创 Mysql(三)事务原理及分析

事务的本质是并发控制的单元,是用户定义的一个操作序列。这些操作要么。

2022-10-30 14:52:04 196

原创 Mysql(二)索引原理及其SQL优化

索引分类:主键索引、唯一索引、普通索引、组合索引、以及全文索引(elasticsearch);

2022-10-28 00:24:03 286

原创 Mysql(一)sql语句、索引、视图初体验

Mysql是按照数据结构来组织、存储和管理数据的仓库;是一个长期存 储在计算机内的、有组织的、可共享的、统一管理的大量数据 的集合;Mysql做增删改操作必须落盘才返回。redis不持久的话就存在内存中。Mysql是关系型数据库(类似与二维表),Redis非关系型数据库(key-value)。Mysql网络结构是select + 阻塞的io,redis是单reactor模型,并且单线程执行命令。

2022-10-23 19:14:16 227

原创 redis系列(二)redis协议与异步方式

redis是基于reactor模式设计的内存数据库。redis是单线程redis 单线程是指其网络事件处理模型 reactor 是单线程,即指令的执行是在单线程上操作。但是其包括IO读取,网络IO操作都是通过多线程执行的。

2022-10-19 23:23:08 839

原创 从protobuf实例理解原理以及Varint编码

protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。protobuf特点:ProtoBuf 支持 Java、C++、Python 等多种语言,支持多个平台。并且客户端和服务端还可以使用不同的语言编写。使用protobuf序列化数据传输速度快,比XML数据快数10倍。主要得益于他的编码方式。扩展性、兼容性好。更新数据结构,不影响和破坏原有的旧程序。

2022-10-16 17:58:44 408

原创 redis系列(一)原理及基本命令

Redis 是 Remote Dictionary Service 的简称,被称为远程字典服务;redis客户端和服务端是基于TCP建立网络通信的。Redis 是内存数据库,是目前市面上高性能的key-value数据库;底层的数据结构就是hash,因此查找数据的复杂度为O(1);redis中的字符串是一种动态字符串。在C语言中字符串是以’\0’结尾的字符串数组。但在redis中是自己构建一套简单动态字符串(simpledynamic string 简称SDS)。

2022-10-14 00:24:12 135

原创 muduo日志库原理以及源码分析

muduo的这些特点使得其作为高性能日志库被广泛使用。

2022-10-11 01:01:14 578

原创 哈希表与一致性哈希

(hash)又叫散列表是一种数据结构,可以根据 key 计算 key 在表中的位置;是key 和其所在存储地址的映射关系(如:Hash(key)=address)。哈希表的节点中的 key和value 是存储在一起的;如下所示哈希表有几个因素:hash函数、负载因子。

2022-10-09 23:18:01 110

原创 IO接口中的fread/fwrite/fflush分析

linux底层操作;内核调用, 涉及到进程上下文的切换,即用户态到核心态的转换,这是个比较消耗性能的操作。:c语言标准规定的io流操作,建立在read/write/fsync之上在用户层,又增加了一层缓冲机制,用于减少内核调用次数,但是增加了一次内存拷贝。可以将fread,fwrite是一种批量写入,而read,write是单次写入的形式来理解。对于输入设备,调用fsync/fflush将清空相应的缓冲区,其内数据将被丢弃;

2022-10-09 23:01:14 870

原创 从Log4cpp日志框架中学习日志该怎么打印

log4cpp是个开源项目,移植自Java的日志处理跟踪项目log4j,并保持了API上的一致。Log4cpp中最重要概念有Category(种类)、Appender(附加器)、Layout(布局)、Priorty(优先级)。:表示日志的级别种类。分为EMERG、FATAL、ALERT、CRIT、ERROR、WARN、NOTICE、INFO、DEBUG。:日志的常用优先级:DEBUG < INFO < WARN < ERROR < FATAL。

2022-10-09 22:28:12 339

原创 池化技术-数据库连接池

常用案例:线程池、内存池、连接池、对象池。对象创建时间长;对象创建需要大量资源;对象创建后可被重复使用减少资源对象的创建次数,提高程序的响应性能,在高并发下情况下提高更加明显。定义:数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。数据库连接池的特点:资源复用。

2022-09-15 00:20:10 833

原创 手写Linux/C语言线程线程池实现

本线程池采用C语言实现,C++版本可参考有一个经验公式: 线程数量 =(io等待时间+cpu运算时间)*核心数/cpu运算时间。

2022-09-13 00:58:57 371

原创 基于C++11新特性手写线程池实现

线程池封装在ZERO_ThreadPool类中,以下从几个函数代码去分析线程池的原理。线程池采用C++11实现,包括不限于右值引用move,类型推导decltype、aouto,模板函数,可变参数,lambda表达式等新特性。

2022-09-11 16:43:35 607 1

原创 单例模式的原理/懒汉模式/饿汉模式以及不同版本的单例模式程序

单例模式保证一个类仅有一个实例,并提供一个该实例的全局访问点。从初始化的时间角度上看,单例模式分为两种,懒汉模式与饿汉模式。包含C++代码

2022-08-06 14:42:41 261

原创 匿名函数lambda表达式

C++中匿名函数也叫lambda表达式。字面意思就是没有名字的函数;匿名函数不用在头文件中声明,可以看做是一个临时函数,仅在调用时才会创建函数对象。

2022-07-28 08:00:00 809 5

原创 emplace_back和push_back对比分析

emplace_back是C++11新引进的接口函数。emplace_back是就地构造,不用构造后再次复制到容器中。因此效率更高。

2022-07-27 00:46:44 951 3

原创 深拷贝与浅拷贝定义以及案例说明

浅拷贝只是拷贝一个指针,并没有新开辟一个地址,拷贝的指针和原来的指针指向同一块地址,如果原来的指针所指向的资源释放了,那么再释放浅拷贝的指针的资源就会出现错误。对于含有堆内存的类,如果使用默认构造函数浅拷贝操作,很容易会导致堆内存的重复删除运行结果可以看到“free()表示对同一块堆上的内存重复调用了free()函数。可以看到其中两个m_ptr的地址是相同的。上述程序可以使用深拷贝来避免这个问题。...

2022-07-26 19:50:21 352

原创 右值引用以及move移动语义和forward 完美转发

文章对比了左值和右值的区别,解释了右值引用的含义和右值引用的用法,以及在移动构造函数中右值引用的使用;文章还解释了move移动语义减少性能消耗的原因,以及forward完美转发的原理以及案例。.........

2022-07-26 15:37:10 459 5

原创 weak_ptr基本用法以及怎么解决循环引用

文章主要记录自己学习智能指针weak_ptr的笔记,详细记录了weak_ptr处理循环引用的步骤,并且写了weak_ptr常用的函数用法以及注意事项。

2022-07-25 19:53:37 6914 3

空空如也

空空如也

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

TA关注的人

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