自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Hiredis_安装_重要API

一共4个API。

2024-08-01 10:51:02 911

原创 Redis-哨兵模式_常见问题

Redis主从复制的作用有数据热备、负载均衡、故障恢复等:但主从复制存在的一个问题是故障恢复无法自动化。接下来要介绍的哨兵模式,它基于Redis主从复制,主要作用便是解决主节点故障恢复的自动化问题,进一步提高系统的高可用性。Redis的Sentinel系统用于管理多个Redis服务器(instance),该系统执行以下三个任务。

2024-07-31 10:03:09 964 2

原创 Redis的事务_乐观锁与悲观锁

Redis事务可以一次执行多个命令,本质是一组命令的集合,一个事务中的所有命令都会序列化,按顺序的串行化执行,而不会被其他命令插入,不许加塞。1.批量操作在发送EXEC命令前被放入队列缓存2.收到EXEC命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行3.在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中,一个事务从开始到执行会经理以下三个阶段:开始事务命令入队执行事务。

2024-07-29 10:48:13 886

原创 Redis持久化

1.两种持久化的方式一般都是同时开启的,既能保证数据的完整性和一致性,也能保证大量数据恢复的时候时间比较快。2.如果只开启AOF持久化的方式,并且被损坏了,此时不能启动成功的。3.如果aof文件损坏了,是可以进行手动修复的。4.如果你只希望你的数据在服务器运行的时候存在,你也可以不使用任何持久化方式(只做缓存。

2024-07-26 10:33:35 967

原创 Redis的五种数据类型与命令

Redis 是一个开源的(BSD许可)的,C语言编写的,高性能的数据结构存储系统,它可以用作数据库,缓存和消息中间件。Redis有序集合和集合一样也是string类型元素的集合,且不允许重复的成员,不同的是每个元素都会关联一个double类型的分数。2.Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。最后要给大家介绍的是Redis的配置文件,里面有许多对Redis的配置进行了描述,有兴趣的可以自行阅读一下!

2024-07-25 11:18:20 1014

原创 go语言入门教程

在 Go 语言中,无论是变量、函数还是类属性和成员方法,它们的可见性都是以包为维度的,而不是类似传统面向编程那样,类属性和成员方法的可见性封装在所属的类中,然后通过。Go 语言没有提供这些关键字,不管是变量、函数,还是自定义类的属性和成员方法,它们的可见性都是根据其首字母的大小写来决定的,如果变量名、属性名、函数名或方法名。,就可以在包外直接访问这些变量、属性、函数和方法,否则只能在包内访问,因此 Go 语言类属性和成员方法的可见性都是包一级的,而不是类一级的。,且需要注意的是,与大多数强类型语言不同,

2024-06-29 11:53:46 816

原创 [C++11/14新特性] tuple元组介绍

C++11 标准新引入了一种类模板,命名为 tuple(中文可直译为元组)。tuple 最大的特点是:实例化的对象可以存储任意数量、任意类型的数据。tuple 的应用场景很广泛,例如当需要存储多个不同类型的元素时,可以使用 tuple;当函数需要返回多个数据时,可以将这些数据存储在 tuple 中,函数只需返回一个 tuple 对象即可。1.声明并初始化一个tuple对象 std::tuple<int, float, std::string> t1(41, 6.3, "nico"

2024-05-29 10:25:30 273

原创 [C++11/14新特性] 介绍右值引用、移动构造函数、move函数

在 C++98/03 标准的基础上,C++11 标准对 C++ 语言增添了约 140 个新特性。本节要讲的右值引用就是众多新特性中的一个,同时也是最重要的特性之一。reversible67/Cpp11or14: 本仓库旨在让大家快速了解C++11/14新特性 (github.com)

2024-05-20 11:42:43 927

原创 C++ 手撕一个线程池

【代码】C++ 手撕一个线程池。

2024-05-13 12:15:02 229

原创 [C++11/14新特性] lambda匿名函数用法详解

继 Python、Java、C#、PHP 等众多高级编程语言都支持 lambda 匿名函数后,C++11 标准终于引入了 lambda,本节将带领大家系统地学习 lambda 表达式的具体用法。所谓匿名函数,简单地理解就是没有名称的函数,又常被称为 lambda 函数或者 lambda 表达式。7.[]中可以填 = 或 &, = 表示传值的方式 &表示传地址符号的方式 相当于取别名。2.(...)表示参数 因为lambda的行为像函数一样 当然就可以有参数了。1.[id]表示 取外部的变量id。

2024-05-04 18:19:42 1294 1

原创 [C++11/14新特性] noexcept、override、final关键字

如果在运行时,noexecpt函数向外抛出了异常(如果函数内部捕捉了异常并完成处理,这种情况不算抛出异常),程序会直接终止,调用std::terminate()函数,该函数内部会调用std::abort()终止程序。作为说明符,它的作用是指定函数是否抛出异常;作为运算符,它的作用是编译时检查,如果表达式不会抛出任何异常则返回 true,否则返回false。允许将类标记为final 在类后面使用关键字final。如果派生类在虚函数声明时使用了override描述符,

2024-04-30 14:46:21 506

原创 [C++11/14 新特性] Range、default、delete和using关键字

默认构造函数:如果对构造函数进行了重载,则编译器不会隐式的生成一个默认的构造函数,此时如果调用了默认构造函数会在编译时报错,为了避免这种情况,一般会选择重写默认构造函数,且函数体为空。拷贝构造函数 和 拷贝赋值函数:不论有没有对它们进行重载,编译器始终会隐式生成默认版本,但有的时候不希望类实例进行拷贝构造或拷贝赋值,此时可以重写它们并将权限设置为private,但这样只是利用语法特性来碰巧实现效果,且对友元会带来困惑。3.拷贝赋值函数(operator=);

2024-04-28 15:36:21 421

原创 [C++11/14新特性] initializer_list和explicit关键字

1.initializer_list是C++11中的一个特性 它允许你使用{}中的值来初始化容器或数组,通常用于初始化标准库容器,比如std::vector、std::set、std::map以及数组。2.关键字explicit 翻译为:明白的 明确的,在构造函数前面加上explicit 就是在告诉编译器我要明确的调用 ,不需要你给我做隐式的转换。

2024-04-25 16:39:37 734 1

原创 [C++11/14新特性] nullptr空指针和auto关键字

但是在一些比较灵活的语言中,比如 C#、JavaScript、PHP、Python 等,程序员在定义变量时可以不指明具体的类型,而是让编译器(或者解释器)自己去推导,这就让代码的编写更加方便。而对于 isnull(NULL),我们期望它实际调用的是参数为 void*c 的 isnull() 函数,但观察程序的执行结果不难看出,并不符合我们的预期。auto 表示变量是自动存储的,这也是编译器的默认规则,所以写不写都一样,一般我们也不写,这使得 auto 关键字的存在变得非常鸡肋。

2024-04-24 16:19:19 731

原创 [C++11/14新特性] 数量不定的模板参数

..就是一个所谓的pack(包)用于template parameters,就是template parameters pack(模板参数包)用于function parameter types,就是function parameter types pack(函数参数类型包)用于function parameter,就是function parameters pack(函数参数包)

2024-04-23 12:22:03 483 2

原创 [自研引擎]GAMES104 反射系统

掌握Piccolo中反射宏和反射标签的用法,选择自己感兴趣的系统,给它管理的Component结构增加或修改一个属性,检查它及ComPonent结构的反射宏和反射标签,确保它能够被正确的反射。

2024-04-01 19:33:35 1165 2

原创 [自研引擎]GAMES104 物理系统

物理系统的作用是模拟和处理物体之间的物理行为和交互,物理系统在引擎中扮演着模拟和处理物体之间物理行为的角色,使游戏或应用程序更加真实、逼真和互动。它可以为物体提供真实的运动、碰撞和力学效果,增强用户体验并丰富游戏世界的交互性。

2024-03-28 14:35:16 456 1

原创 [自研引擎]GAMES104 动画系统

状态机最开始的时候指向_idle,接下来有两个数字1和2表示动作的优先级,当is_jumping为真时,会进入jump_start_from_idle状态,当is_moving为真时,会进入到walk_start状态,剩余状态同理,根据当前状态以及bool变量的值来决定!所以还需要补全blend函数,在Piccolo小引擎中找到Piccolo/engine/source/runtime/function/animation/pose.cpp,对走跑跳进行一个过渡,代码都有详细的注释。

2024-03-26 20:23:24 529 1

原创 [自研引擎]GAMES104 实现一个渲染功能

1.在Piccolo小引擎代码中找到Piccolo/engine/shader/glsl/color_grading.frag,补充此shader代码中的main函数,以实现ColorGrading功能。若代码编译成功且实现方法正确,则可以看到进行ColorGrading渲染之后的结果2.使用自定义的LUT图,并修改相应代码,实现具有个性的ColorGrading的效果。

2024-03-24 19:13:18 482 5

原创 [自研引擎]GAMES104 Piccolo引擎源码解析 一

1.第一类为所有·开头的文件或文件夹 ,这些文件其实是各个平台或者各个工具的一些配置文件(这些文件或文件夹在某些操作系统中会是默认隐藏的,所以如果下载下来发现没有这些文件,也不需要担心)2.第二类是cmake和CmakeList的一些脚本,Piccolo是通过cmake进行构建的3.第三类是系统的一些批处理文件,这些文件是为了方面构建Piccolo而编写的一些小脚本4.第四类是LICENSE、README和ReleaseNotes,这几个文件可以在阅读代码之前,简单的看一下。

2024-03-23 11:38:41 1219

原创 Linux下C++轻量级WebServer服务器 框架梳理

WebServer是一个很好的入门级C++项目,因为它涉及到了方方面面,不仅可以提高编程能力,还包括了操作系统、计算机网络、数据库等方面的知识,所以我很推荐大家去入手这个项目。说细一点这个项目包含锁机制、日志系统、线程池、http处理、并发模型等实现,但是很多人一开始做这个项目的时候,会觉得逻辑很混乱从而无从下手,所以我写下这篇文章目的就是帮助大家起到一个梳理逻辑的作用,好了废话不多说,咱们往下看!

2024-03-02 17:28:46 4714 4

原创 (Linux)TCP实现服务器和客户端通信+详细注释

2.connect函数表示连接到服务器,这个函数将套接字连接到 sockaddr_in 结构体中描述的IP地址和端口号,如果连接失败,将返回一个负数值。该程序实现了一个简单的TCP服务器的功能,可以接收客户端的连接,并且循环接收客户端发送的消息,将接收到的消息输出到终端。这是一个TCP客户端代码,它的主要功能是连接到指定的服务器,并且有发送消息接收消息的功能。5.在一个while循环中循环接收客户端发送的消息,然后将接收到的消息输出到终端。1.使用socket函数创建一个IPv4的TCP套接字。

2024-02-24 22:53:44 718 1

原创 从github上下载的C++项目要如何运行?

最近一直在纠结,从github上面拉取的C++项目要如何在本地运行呢?通过反复在网上搜资料,才稍微明白了一些。所以写下这篇文章,做一个总结的同时,也可以为其他小伙伴作参考!

2024-02-21 13:11:16 3344 1

原创 Linux利用条件变量实现生产者消费者

(即最多只能容纳10个产品)

2023-10-26 17:08:27 101 3

原创 Linux利用锁机制实现火车票售卖功能

当票数容量较小的时候,会出现一边倒的情况(即全部由一个窗口售卖),这是不符合现实情况的,有人就会有疑问,这个锁不公平吧?其实不是的,当我们把车票容量调大一些,会得到如下的情况。

2023-10-25 15:05:54 111 4

原创 进程相关的命令

ps命令、top命令、free命令、nice命令、renice命令、jobs命令、fg命令、bg命令、kill命令

2023-10-14 15:32:23 147 1

原创 CentOS ping不通百度的解决方案以及如何换源

前几天在学Linux的时候,遇到了这样一个问题。在ping www.baidu.com的时候。,看了很多文章,解决了这个问题。

2023-09-20 15:02:00 3254 1

原创 Linux网络设置、Xshell远程连接Linux、用户+文件子系统

普通用户(又可分为sudoers:可以临时拥有一些特权用户的权限 以及其他用户)如果出现下面的情况,代表你已经成功连接了,可以远程操控Linux服务器了。特权用户(超级用户、根用户) root 拥有至高无上的权限。看和百度的服务器是否连接 如果第一步没问题 就不用做后面。p (previous)-> 向上移动一整页。f(forw) -> 向下移动一整页。d(down)-> 向下移动半页。u(up) -> 向上移动半页。cd ~ 切换到该用户根目录。Ctrl + C 终止。cd / 切换到根目录。

2023-09-17 18:09:55 163 2

空空如也

空空如也

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

TA关注的人

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