自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

安静的技术宅

青山遮不住,毕竟东流去~

  • 博客(24)
  • 资源 (8)
  • 收藏
  • 关注

原创 TCP的重传机制

TCP 是一个可靠的传输协议,解决了IP层的丢包、乱序、重复等问题。这其中,TCP的重传机制起到重要的作用。TCP的重传机制主要包括超时重传和快速重传...

2024-05-31 23:16:58 1094

原创 skynet.newservice简介:服务的启动

在 skynet 的体系中,服务是一个基础概念。通常,我们使用 skynet.newservice 来启动一个 snlua 服务。那么,当我们写下 local addr = skynet.newservice("test") 这行代码时,系统是怎么运作的呢...

2024-05-22 22:38:57 963

原创 TCP的四次挥手过程

TCP连接是双向传输的对等的模式(全双工模式),就是说双方都可以同时向对方发送或接收数据。而断开的时候,也是双方都可以主动断开,此时需要经过四次挥手的过程,流程如下图所示...

2024-05-12 11:21:15 280 1

原创 TCP的三次握手过程

TCP 是面向连接的、可靠的、基于字节流的传输层通信协议。TCP 是面向连接的协议,所以使用 TCP 前必须先建立连接,而建立连接是通过三次握手来进行的...

2024-05-02 17:00:10 1864 2

原创 使用Redis实现游戏排行榜

排行榜在当今应用中扮演着至关重要的角色。无论是游戏中的玩家排名、社交平台的用户活跃度榜单,还是其他领域的各种榜单,排行榜都是用户参与性和互动性的关键。在实现排行榜功能时,选择合适的数据库和数据结构至关重要。Redis,作为一种内存数据库,以其高性能和灵活性而备受青睐。下面将探讨如何使用 Redis 的有序集合(Sorted Set)来实现排行榜功能...

2024-04-27 17:01:58 706 2

原创 Redis报错:CROSSSLOT Keys in request don‘t hash to the same slot的解决方案

Redis 的插槽(Slot)是用于实现集群分片(Cluster Sharding)的一种机制。Redis集群至少需要三个结点,每个结点处理一部分数据。要怎么分配这些数据到各个结点?Redis Cluster 采用的是虚拟槽分区算法,其中提到了槽(Slot)的概念...

2024-04-14 23:35:06 1347 1

原创 double类型中可精确表达的最大正整数

之前在项目中,使用redis的zset来实现排行榜,由于zset中的分数使用了double类型,而我们排行的数值都是整数,所以引起一个问题:在double中,能精确表示的,不会丢失精度的最大正整数是多少呢?先说结论:是2^53−1,即 9,007,199,254,740,991...

2024-04-13 00:00:24 901

原创 Redis的跳跃表

在Redis中,有一种高效的数据结构叫做有序集合(zset),它是一种集合,其中每个成员(member)都会关联一个分数(score)。zset既可以快速地通过member找到该成员对应的分数,又可以按照分数的大小进行范围查询,这对于实现排行榜等功能非常有用。那么zset是如何实现这样的功能的呢?答案是跳跃表(skiplist)...

2024-04-07 23:26:45 863

原创 skynet之main服务的启动

我们知道,skynet 以 服务(service)为基础,那么,当我们输入指令 > skynet examples/config 之后,skynet 启动的第一个服务会是什么呢...

2024-03-30 17:33:35 338 1

原创 使用Docker搭建Redis Cluster集群

Cluster模式是Redis的一种高级集群模式,它通过数据分片和分布式存储实现了负载均衡和高可用性。在Cluster模式下,Redis将所有的键值对数据分散在多个节点上。每个节点负责一部分数据,称为 `槽位`。通过对数据的分片,Cluster模式可以突破单节点的内存限制,实现更大规模的数据存储...

2024-03-29 23:24:03 1207

原创 在MySQL的PREPARE中绑定WHERE IN子句参数

在 MySQL 中,PREPARE 是一种用于准备执行动态 SQL 语句的机制。通过 PREPARE,你可以将一个 SQL 查询或操作的查询计划(执行计划)准备好,然后在稍后的时间点执行它,而不是立即执行。SQL 注入防护: 使用 PREPARE 可以在准备 SQL 语句时进行参数绑定,从而防止 SQL 注入攻击。因为动态构建 SQL 查询字符串并将参数直接插入字符串是一种不安全的做法,而 PREPARE 允许你将参数作为占位符传递,从而提高了安全性。

2023-09-17 23:34:13 137 1

原创 Redis Pipeline管道技术

Pipeline是Redis提供的一种批量请求机制,可以在client端对多条命令进行打包,然后一次性发送给服务器,避免了多次网络往返的开销。

2023-08-06 17:18:17 149

原创 MySQL使用binlog恢复数据

MySQL的二进制日志(Binlog)是一种事务日志,用于记录对数据库的更改操作。复制: 从库通过拉取主库的binlog实现主从数据一致恢复: 通过重放binlog恢复数据丢失或误操作情况MySQL的Binlog是数据库的重要组成部分,它记录了数据库的更改操作,并为数据复制和数据恢复提供了有力支持。通过了解Binlog的原理和使用技巧,我们可以更好地利用这一特性,保障数据库的稳健运行,并在必要时实现高级的数据恢复。然而,进行数据恢复时,请务必谨慎操作,以免造成不可逆的损失。

2023-07-30 18:18:57 4270 1

原创 MySQL中使用JSON存储数据

MySQL从5.7版本开始引入了对JSON数据类型的原生支持。这个增强功能使开发人员能够直接在数据库中存储、操作和查询JSON数据。MySQL的JSON字段为存储半结构化数据提供了更加灵活和高效的方式。灵活性:JSON字段可以存储不同结构的数据,无需提前定义表结构。扩展性:可以轻松地添加新的属性或字段,无需修改表结构。快速开发:适用于那些数据结构经常变化或者需要快速迭代开发的应用。

2023-07-22 17:04:38 3956

原创 快速排序的实现

快速排序最初由一位英国计算机科学家Tony Hoare提出的。Tony Hoare是计算机科学领域的前辈之一,也是算法设计方面的专家,他在1960年代提出了快速排序算法,从那时起,快速排序就成为了许多经典排序算法之一,并且一直广泛应用在计算机科学领域。快速排序被认为是最快的排序算法之一,因为它具有优秀的平均时间复杂度Onlogn),此外,快速排序使用了一种高效的分治策略,可以在排序过程中大大降低内存占用,这使得它可以处理大型数据集,从而在实践中诞生出一个有效率的排序算法,因此被命名为快速排序。

2023-07-01 18:04:23 41

原创 hiredis的同步模式和异步模式

Hiredis 是一个 C 语言编写的 Redis 客户端库,用于与 Redis 数据库进行交互。它提供了一个简洁而高效的接口,使开发人员可以方便地在自己的 C/C++ 项目中使用 Redis。Hiredis 是一个开源项目,可从其官方 GitHub 仓库获取源代码,并在符合 BSD 许可证的条件下使用和分发。它被广泛应用于各种 C/C++ 项目中,特别是那些需要与 Redis 数据库进行快速、可靠和高性能交互的应用程序。more。

2023-06-22 16:42:46 382 1

原创 插入排序的实现

插入排序(Insertion Sort)是一种简单且直观的排序算法。它的基本思想是将未排序的元素逐个插入到已排序的部分中,最终得到一个完全有序的序列。插入排序是一种简单但有效的排序算法,适用于小规模的数据集或者基本有序的数据集。它的实现思路直观明了,通过逐个比较和插入来构建有序序列。虽然插入排序的时间复杂度为O(n2),在大规模数据集上的性能可能不如其他高级排序算法,但在某些特定场景下,插入排序的性能表现仍然是可接受的。

2023-06-09 00:05:38 72

原创 归并排序的实现

归并排序由冯·诺伊曼在1945年首次提出,是一种典型的分治思想:将问题拆分,递归处理,然后合并。归并排序的基础思路是,当一个数组的前后两部分都是有序的话,那么可以在On)时间内合并,使整个数组有序。归并排序的算法复杂度,在最好、最坏和平均的情况下,都是O(nLogn)。

2023-05-03 22:52:35 113

原创 gdb define自定义用户命令

gdb define命令,用于定义一系列的gdb指令,就相当于调试的时候,用函数一样。

2016-01-29 23:25:05 3739 1

原创 用gdb调试运行中的程序

用gdb调试运行中的程序

2016-01-28 22:43:17 3986

原创 cocos2dx中的序列帧动画

0、序列帧动画,就是把一张一张的图片,连续播放而形成的动画。1、在cocos中,类Animate是用来实现序列帧动画的。该类继承自ActionInterval,所以可以用作runAction的参数。Animate的创建和使用很简单: Animate * anim = Animate::create(animation); sprite->runAction(anim);

2016-01-26 23:03:30 1378

原创 Cocos2dx 3.0 简单的动作类

0、Sprite要执行动作,需要调用runAction,这个函数继承自Node类,参数是Action类指针。1、Action类,继承自Ref、Clonable。派生出三个子类:FiniteTimeAction :有限时间动作Follow :跟随动作Speed :更改动作速度2、FiniteTimeAction类有成员变量_duration记录动作的时间,派生

2015-12-31 23:56:47 382

原创 EPOLL的简单使用

EPOLL简介epoll是linux下的一个处理多路I/O复用的机制,基于事件通知,能够高效的处理多个SOCKET连接。

2015-03-21 18:02:15 735

原创 Linux下socket编程的简单实例

1 服务器端的socket编程服务器端主要的功能,就是创建socket监听,等待客户端的连接。 基础的步骤很简单,如下:(1) 创建socket; (2) 绑定地址和端口; (3) 启动监听; (4) 接受客户端请求; (5) 读/写数据;

2015-02-27 11:00:13 1014

OpenCV_人脸检测+SIFT特征匹配

mfc框架,使用OpenCV库,实现人脸及五官检测,SIFT物体特征匹配功能。 通过分类器xml文件来检测人脸及五官。

2009-08-15

SDK实现的数独游戏

win32 SDK实现的数独游戏 通过递归生成数独,能自动解答

2009-07-12

c++控制台下的数独游戏

c++实现的控制台程序,键盘方向键控制光标移动, 彩色效果,利用线程实现计时功能 数独游戏,通过递归生成数独

2009-07-12

基于OpenCV的图像处理

使用OpenCV库写的进行图像处理的软件。 OpenCV的版本为1.0 开发工具为VC6.0 使用了皮肤文件作界面的美化 实现缩放、旋转、镜像、傅立叶变换、锐化、滤波、边缘检测、噪声等功能

2009-03-24

物资管理系统源代码(vc6 + SQLServer2000)

用VC6编写的物资管理系统,后台服务器使用SQLServer2000,使用分割窗口,左窗口树型控件显示信息清单,主窗口显示详细信息。实现添加/删除/修改/查询等功能。

2009-03-04

j2me手机理财系统

基于j2me编写的微型理财系统,提供记帐功能。 开发平台:eclipse + eclipseME + WTK2.5

2008-11-24

高质量C++编程指南

 软件质量是被大多数程序员挂在嘴上而不是放在心上的东西!  除了完全外行和真正的编程高手外,初读本书,你最先的感受将是惊慌:“哇!我以前捏造的C++/C程序怎么会有那么多的毛病?”  别难过,作者只不过比你早几年、多几次惊慌而已。  请花一两个小时认真阅读这本百页经书,你将会获益匪浅,这是前面N-1个读者的建议。

2008-10-24

空空如也

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

TA关注的人

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