自定义博客皮肤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)
  • 收藏
  • 关注

原创 【Redis】Redis7学习笔记

Redis【Remote Dictionary Server(远程字典服务器)】是用C语言开发的一个(key value)数据库Redis通过提供多种键值数据类型来适应不同场景下的存储需求目前Redis支持的键值数据类型如下:字符串类型String、哈希类型hash、列表类型list、集合类型set、有序集合类型sortedsetRedis可以缓存数据的计算结果、页面内容、数据库查询结果等,通过提高数据访问速度和响应速度,提升系统性能和用户体验。

2024-07-17 15:59:27 833

原创 【C++】单例模式

当一个函数中定义一个静态局部变量时,那么这个局部变量只会初始化一次,就是在这个函数第一次调用的时候,以后无论调用几次这个函数,函数内的静态局部变量都不再初始化。那我们可以利用局部静态变量这一特点实现单例保证一个类仅有一个实例,并提供一个访问它的全局访问点。一个全局使用的类频繁地创建与销毁。当想控制实例数目,节省系统资源的时候。单例模式在多线程中的问题:多线程操作会涉及到对单例模式的影响,多个线程可能会同时创建类的实例,从而违反了单例模式的原则。以下是本篇文章正文内容。

2024-07-22 10:21:26 787

原创 【Docker】Docker基础

镜像(image)Docker镜像就好比是一个模板,可以通过这个模板来创建容器服务, 通过这个镜像可以创建多个容器,最终服务运行或者项目运行就是在容器中的容器(container)Docker利用容器技术,独立运行一个或者一组应用, 通过镜像来创建的启动,停止,删除,基本命令!仓库(repository)存放镜像的地方Docker Hub(默认是国外的)阿里云,都有容器服务(配置镜像加速!以下是本篇文章正文内容编写dockerfile文件​。

2024-07-19 15:51:17 981

原创 【Redis】集群

奇数个master节点可以在满足选举该条件的基础上节省一个节点,比如三个master节点和四个master节点的集群相比,大家如果都挂了一个master节点都能选举新master节点,如果都挂了两个master节点都没法选举新master节点了,所以奇数的master节点更多的是从节省机器资源角度出发说的。因为新master的选举需要大于半数的集群master节点同意才能选举成功,如果只有两个master节点,当其中一个挂了,是达不到选举新master的条件的。集群会记录节点和槽的对应关系。

2024-07-16 20:31:12 1282

原创 【Redis】哨兵(sentinel)

因为有的时候,某个sentinel节点可能因为自身网络原因,导致无法连接master,而此时master并没有出现故障,所以,这就需要多个sentinel都一致认为该master有问题,才可以进行下一步操作,这就保证了公平性和高可用。SDOWN 是单个sentinel 自己主观上检测到的关于master的失效状态,从sentinel的角度来看,如果发送了PING心跳后,在timeout时间内没有收到合法的回复,就达到了SDOWN的条件。自动将某一个从库转换为新主库,继续对外服务,俗称无人值守运维。

2024-07-12 23:15:44 1374 2

原创 【Redis】复制(Replica)

上一个slave可以是下一个slave的master,slave同样可以接收其他slaves的连接和同步请求,那么该slave作为了链条中下一个的master。通过日志可以查看连接状态,日志保存目录在配置文件中。命令配置是一次性,当重启后就不再生效。从机配置上主机的ip、端口。关闭后,数据还在从redis中。slave启动,同步初请。

2024-07-12 20:12:21 1287

原创 【Redis】发布/订阅(Pub/Sub)

已经不推荐使用发布/订阅,现在专业的使用Mq,kafka,RabbitMQ等中间件发布的消息在Redis系统中不能持久化,因此,必须先执行订阅,再等待消息发布。如果先发布了消息,那么该消息由于没有接收者只管发送对于发布者而言消息是即发即失的,不管接收,也没有ACK机制,无法保证消息的消费成功。5.0版本更新的Stream,支持多播以及数据持久化,比发布/订阅更加强大。

2024-07-11 11:06:11 159

原创 【Redis】管道

如何优化频繁命令往返造成的性能瓶颈?Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。客户端向服务端发送命令分四步(发送命令→命令排队→命令执行→返回结果),并监听Socket返回,通常以阻塞模式等待服务端响应服务端处理命令,并将结果返回给客户端。Round Trip Time(简称RTT,数据包往返于两端的时间)

2024-07-11 10:21:32 392

原创 【Redis】事务

可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化, 按顺序地串行化执行而不会被其他命令插入,不许加塞一个队列中,一次性、顺序性、排他性的执行一系列命令单独的隔离操作Redis的事务仅仅是保证事务里的操作会被连续独占的执行,redis命令执行是单线程架构,在执行完事务内所有指令前是不可能再去同时执行其他客户端的请求的没有隔离级别的概念因为事务提交前任何指令都不会被实际执行,也就不存在"事务内的查询要看到事务里的更新,在事务外查询不能看到”这种问题了。

2024-07-11 09:22:51 452

原创 【Redis】Redis持久化

持久化有两种方式,RDB(Redis Data Base)和AOF(Append Only File)RDB是快照模式AOF是复制写操作当redis宕机时,可以通过这两种模式进行数据恢复。

2024-07-10 17:42:15 1131

原创 【Redis】Redis十大类型

redis是k-v键值对进行存储,key的类型都是字符串,而数据类型是value的数据类型命令不区分大小写,而key的值是区分大小写的Key常用命令keys * //当前库的所有keyexists key //判断某个key是否存在,可以同时判断多个key,返回几就是存在几个type key //查看你的key是什么类型// 删除del key //是原子操作,删除指定的key数据。

2024-07-10 10:50:15 898

原创 【C++】基于C++11的数据库连接池

在进行数据库操作的时候为了提高数据库(关系型数据库)的访问瓶颈,除了在服务器端增加缓存服务器(例如redis)缓存常用的数据之外,还可以增加连接池,来提高数据库服务器的访问效率。一般来说,对于数据库操作都是在访问数据库的时候创建连接,访问完毕断开连接。

2024-07-08 16:06:27 1216

原创 【C++】智能指针

实例对象的引用计数变为2,在共享智能指针离开作用域之后引用计数只能减为1,这种情况下不会去删除智能指针管理的内存,导致类TA、TB的实例对象不能被析构,最终造成内存泄露。也被析构,其对TA对象的管理解除,内存的引用计数减为1,当共享智能指针ap离开作用域之后,对TA对象的管理也解除了,内存的引用计数减为0,类TA的实例对象被析构。类型,这个赋值操作并不会增加引用计数,所以bp的引用计数仍然为1,在离开作用域之后bp的引用计数减为0,类TB的实例对象被析构。

2024-06-16 18:50:28 1442

原创 【C++】C++11新特性

对于 C++ 内置类型的数据,可以直接用 constexpr 修饰,但如果是自定义的数据类型(用 struct 或者 class 实现的),直接用 constexpr 修饰是不行的。注意:在R “xxx(raw string)xxx” 中,原始字符串必须用括号()括起来,括号的前后可以加其他字符串,所加的字符串会被忽略,并且()前后加的字符串必须相同。通过对基于范围的for循环语法的介绍可以得知,在for循环内部声明一个变量的引用就可以修改遍历的表达式中的元素的值,但是这并不适用于所有的情况,对应。

2024-06-15 15:56:31 929

原创 【非保姆级教程】如何上传项目到GitHub

git官网下载git。

2024-06-13 16:56:08 556

原创 【C/C++】线程池实现

1

2024-06-12 20:27:29 1121

原创 【C++】多线程(基于Windows以及pthread库)

在windows中进程只是一个容器,用于装载系统资源,它并不执行代码,它是系统资源分配的最小单元,而在进程中执行代码的是线程,线程是轻量级的进程,是代码执行的最小单位。任务分解:耗时的操作,任务分解,实时响应数据分解:充分利用多核CPU处理数据数据流分解:读写分流,解耦合设计。

2024-06-11 10:16:59 1047

原创 【C++】网络通信-Socket

C++网络通信Socket套接字

2024-06-06 21:22:20 1546

原创 【C++】设计模式

定义一系列算法,把它们一个个封装起来,并且使它们可互相替换(变化)。该模式使得算法可独立于使用它的客户程序(稳定)而变化(扩展,子类化)定义对象间的一种一对多(变化)的依赖关系,以便当一个对象(Subject)的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。动态(组合)地给一个对象增加一些额外的职责。就增加功能而言,Decorator模式比生成子类(继承)更为灵活(消除重复代码 & 减少子类个数)。将抽象部分(业务功能)与实现部分(平台实现)分离,使它们都可以独立地变化。

2024-06-05 10:16:38 1036

原创 【C++】STL

/重新指定容器的长度为num,若容器变长,则以elem值填充新位置。Queue是一种先进先出(First In First Out,FIFO)的数据结构,队列,它有两个出口。//重新指定容器的长度为num,若容器变长,则以默认值0填充新位置。由于链表的存储方式并不是连续的内存空间,因此链表list中的迭代器只支持前移和后移,属于双向迭代器。并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间。replace在替换时,要指定从哪个位置起,多少个字符,替换成什么样的字符串。

2024-06-03 10:35:48 861

原创 【C++】模板

C++提供两种模板机制:函数模板和类模板。

2024-06-02 14:58:49 979

原创 【C++】基础知识

C++基础知识笔记

2024-05-31 12:48:34 274

空空如也

空空如也

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

TA关注的人

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