- 博客(1273)
- 资源 (43)
- 收藏
- 关注
原创 记一次阿里云服务器因Redis被【挖矿病毒crypto和pnscan】攻击的case,附带解决方案
一、事情缘由前段时间给大家录制《玩转Docker》教学视频,链接请参阅https://www.bilibili.com/video/BV1BK4y1A78M,为了更好的演示,就在阿里云搞了一个云服务器,自己本地连接。 云服务器到手之后,为了可以让自己本地可以连接到阿里云服务器上就做了如下操作: 开放了ssh(port:22)端口:为了远程连接使用。 开放了剩余的其他所有端口:录制教学视频时启动了相关容器,容器的一些固定端口6379等映射到了宿主机的随机端口上,为了能从公网访问到容器的内容,就开放
2021-05-15 15:30:24 11467 44
原创 暂停更新!
因不可抗拒因素,近期会将CSDN的专栏与文章进行下线(如果没意外,应该是所有文章)。 目前专栏里的文章包含:其中有些专栏看的人蛮多的,记得是去年CSDN推出了"专栏收费"的功能,自己也在考虑要不要将专栏进行收费,考虑到各位读者,最终没有选择使用"专栏收费"这个功能,我的文章有人看就是最大的收获。...
2021-03-31 09:32:15 2859 15
原创 2020年秋招回顾总结(2021届),目前已在上海入职工作,感恩亲人与朋友,未来,你好!
一、前言朋友们好啊,我是CSDN博主江南董少,刚才有个朋友问我董老师发生什么事了,我说怎么回事,给我发了一几张截图,我一看!嗷!原来是昨天,有两个年轻人,三十多岁,一个体重,九十多公斤,一个体重八十多公斤,他们说,唉…有一个说是我快要找工作了,但是自己太菜了,你能不能帮忙写篇文章帮助治疗一下我的菜鸡病(emmm...似乎有点跑题了,哈哈,就到这吧) 秋招结束拿到Offer后,已入职公司三个星期,一直想写一篇秋招总结给我的小伙伴们,但忙于刚来到这座陌生的城市,生活中有很多事情要进行初始化(init),例
2020-11-29 00:35:12 24078 36
原创 Minimax校招-期待你的加入,我在这里等你!
Minimax校招启动了,可私聊我投递简历。公司业务有C端产品、B端产品、大模型。公司前景好,发展快,期待你的加入。岗位:算法工程师、服务端研发工程师(编程语言不限)、基础架构工程师等等。Base:北京、上海。哈喽,各位小伙伴们!
2024-11-24 17:09:35 93
原创 面试冲刺:54---MTU是什么?IP分片是什么?MSS是什么?TCP和UDP会分片吗?它们的关系是什么?
文章介绍之前先介绍几个概念应用层:传输的数据单位为“报文” 运输层: TCP:传输的数据单位为“报文段” UDP:传输的数据单位为“用户数据报”‘’ IP层/网络层:传输的数据单位为“分组/包”,就是将运输层的内容封装为“分组/包”,并通过路由转发 数据链路层:传输的数据单位为“帧” 物理层:传输的数据单位为“比特”一、什么是MTU?在数据链路层中用MTU(Maximum Transmission Unit,最大传输单元)来限制所能传输的数据包大小 MTU是指一次传送的数据最大
2022-10-21 09:04:18 2344
原创 系统可用性:SRE口中的3个9,4个9...到底是个什么东西?
作为服务端开发的同学,最常听到的一句话是你的接口有几个9?2个9?3个9?到底几个9才算是稳定呢?
2022-08-01 22:46:23 3654 3
原创 MySQL与Redis数据库连接池介绍(图示+源码+代码演示)
一、概念数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。 简单的说:创建数据库连接是一个很耗时的操作,也容易对数据库造成安全隐患。所以,在程序初始化的时候,集中创建多个数据库连接,并把他们集中管理,供程序使用,可以保证较快的数据库读写速度,还更加安全可靠。二、图示不使用数据库连接池如果不使用数据库连接池,对于每一次SQL操作,都要走一遍下面完整的流程: 1.TCP建立连接的三
2021-06-09 22:18:26 3356 1
原创 详细讲解MySQL的字符集与排序规则/校对规则(character、collate)
一、字符集和排序规则数据库表被用来存储和检索数据。不同的语言和字符集需要以不同的方式存储和检索。因此,MySQL需要适应不同的字符集(不同的字母和字符),适应不同的排序和检索数据的方法 在MySQL的正常数据库活动(select、insert等)中,不需要操心太多的东西。使用何种字符集和校对的决定在服务器、数据库和表级进行几个重要术语字符集:为字母和符号的集合 编码:为某个字符集成员的内部表示 排序规则:为规定字符如何比较的指令。(排序规则也称为"校对顺序")为什么校对这么重要
2021-06-08 10:39:59 3481
原创 MySQL的SQL模式设定(sql_mode系统变量)
一、SQL模式介绍MySQL服务器的SQL模式对SQL语句的执行会产生几个方面的影响sql_mode系统变量服务器的SQL模式。这个变量将改变MySQL服务器的某些行为,使它更符合SQL语言标准或是与其他数据库服务器或老版本的MySQL服务器保持兼容。此变量的值应该是一个空串(这将清除以前设置的SQL模式)或者是由下面会介绍的一个或多个模式值以逗号分隔而构成的一系列值。 自MySQ 5.6.6起,其默认值为NO_ENGINE_SUBSTITUTION;而对于之前的版本,其值为空串。有些模式值很
2021-06-08 09:54:55 2997 1
原创 优先级队列应用之(哈夫曼树、哈夫曼编码)
一、判定树/判别树的概念现在假设有下面这样的一个题目如果根据题目构建下面这样的一棵树,那么这个树就是判定树(或判别树)判定树(或判别树):用于描述分类过程的二叉树什么是哈夫曼树呢?假设每次的输入量很大,假设现有10000个学生的成绩,其中E的学生占5%、D的学生占15%、C的学生占40%、B的学生占30%、A的学生占10% 假设以下面的方式构建一棵判定树,则1000个数据的比较次数为:10000*(1*5%+2*15%+3*40%+4*40%)=31500次假设以下面的方式构
2021-04-01 13:35:08 2665
原创 MySQL迁移数据目录(迁移数据库、表、InnoDB系统表空间、状态文件/日志文件)
一、概述前面文章讨论了默认配置里的数据目录结构,所有的数据库、状态文件和日志文件都位于其中。不过,在确定数据目录内容的存放位置方面,也有一些回旋的余地。MySQL允许你迁移数据目录本身或者其中的某些元素。 你想这样做的理由可能有以下几种: 包含数据目录的那个文件系统已满,你需要将其移动到某个拥有更大容量的文件系统上。 如果数据目录位于一个很忙的磁盘驱动器上,那么你可以把它放在活动不太频繁的驱动器上,以平衡跨物理设备的磁盘活动。你可以把数据库和日志文件放在不同的驱动器上,或者基于同样的原因把数据库
2021-03-28 17:59:05 4465 4
原创 MySQL数据目录详解(SQL语句与表文件的对应关系、操作系统对数据库对象名字的约束、影响表最大长度的因素、数据目录结构对系统性能的影响、MySQL状态文件和日志文件)
一、SQL语句与表文件的对应关系每一种存储引擎都使用了一个.frm文件来存储表格式(定义),因此SHOW TABLE FROM db_name语句的输出结果与db_name的数据库目录里的那个.frm文件的基本名列表相同。CREAATE TABLE在创建MySQL所支持的任意类型的表时,需要执行CREATE TABLE语句来定义表的结构,并且其中还要包括ENGINE=engine_name子句,用于表明想要使用哪种存储引擎。如果省略ENGINE子句,那么MySQL将使用默认存储引擎(如果你未更改
2021-03-28 15:33:37 1514 1
原创 MySQL视图和存储程序的安全性(DEFINER、SQL SECURITY)
一、概述在定义视图时,需要设置一条用于以后调用的SELECT语句。在定义存储程序时,也有相同的操作,即需要定义一个以后执行的对象。这里的“以后执行”预示着实际执行这些对象的用户并不一定就是当初创建它们的那个用户,而这会引出一个很重要的问题:服务器在执行时应该使用什么样的安全上下文来检查访问权限呢?也就是说,应该应用哪个账户的权限呢? 默认情况下,服务器会使用定义该对象的那个用户的账户。假设我定义了一个存储过程p(),用于访问我的表。如果我把p()的EXECUTE权限授予你,那么你便可以使用CALL p
2021-03-28 10:48:07 2272 1
原创 MySQL FULLTEXT全文索引
一、FULLTEXT简介MySQL具备全文搜索的能力,它可以让你在不使用模板匹配操作的情况下进行单词或短语的查找。 全文搜索有3种类型: 自然语言搜索(默认类型)。MySQL会把搜索字符串解析成一系列的单词 ,然后搜索出包含这些单词的那些行。 布尔模式捜索。在捜索字符串里那些单词可以包含修饰字符,用以表明某些特定的要求,如某个给定的单词必须出现(或不出现)在匹配行里,或者某些行必须恰好包含某个短语。 查扩展搜索。这种搜索分两阶段进行。第一阶段是自然语言搜索。第二阶段则先把原来的搜索字符串,与
2021-03-27 20:49:44 4348
原创 MySQL数据类型——字符串类型(CHAR、BINARY、BLOB、TEXT、ENUM、SET)
一、全文本搜索概述支持全文本搜索的引擎:MyIASM引擎才支持全文本搜索全文本搜索比like、正则表达式搜索更好在前面的文章中介绍了like关键字的搜索以及正则表达式的搜索,但是这些搜索机制有一些限制: 性能:通配符和正则表达式匹配通常要求MySQL尝试匹配表中所有行(而且这些搜索极少使用表索引)。因此,由于被搜索行数不断增加,这些搜索可能非常耗时 明确控制: 智能化的结果:...
2021-03-18 22:27:40 7452 1
原创 服务/软件管理:54---Mac下包管理工具Homebrew的安装与使用
一、介绍Homebrew是mac下的包管理工具,类似于二、安装三、相关使用方法
2021-01-01 20:28:12 1133
原创 服务/软件管理:53---Mac下的royaltsx远程连接工具的使用
一、royaltsx介绍royaltsx是一个远程连接工具,可以在Windows、Mac等系统下使用 目前支持的内容大致有: 访问和管理您的连接 凭证管理 标签式用户界面 连接插件(目前可用。远程桌面、VNC、Apple Remote Desktop、SSH、Telnet、Web、VM ware等) 二、royaltsx的安装进入官网https://www.royalapps.com/ts/mac/features进行下载点击上方的"Free Download",然后来到下
2020-12-26 19:29:16 3096
原创 长文讲述Docker的4大网络模型(host、container、none、bridge)
docker在安装后会默认生成三种网络,none、bridge及host我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: host模式,使用--net=host指定 container模式,使用--net=container:NAME_or_ID指定 none模式,使用--net=none指定 bridge模式,使用--net=bridge指定,默认设置 一、host模式众所周知,Docker使用了L
2020-12-26 11:12:17 2062
原创 手头没资源?机器不够用?带你使用云端Docker(Play with Docker)
一、介绍Play with Docker(PWD)是由Marcos Liljedhal和Jonathan Leibiusky发起的一个项目,由Docker公司赞助 Play with Docker是一个网址,免费提供了一个在线的Docker操作平台,你可以在里面对Docker进行操作和学习 国内访问Play with Docker可能会非常满,因此需要进行翻墙才可以快速访问二、使用演示第一步:进入官网https://labs.play-with-docker.com/,然后点击"Login"进
2020-12-25 22:58:47 2892 1
原创 核心篇,你必须要会的Dockerfile指令详解
一、Dockerfile介绍在前面的文章(https://dongshao.blog.csdn.net/article/details/107389320)中我们介绍了若干种构造镜像的方式,其中一种方式就是基于Dockerfile构造镜像 关于使用Dockerfile构造镜像的演示案例,请参阅上面的链接二、Dockerfile构建失败时会怎样?如果在构建的过程中,Dockerfile某一步骤出错会怎样?下面通过一个演示案例来看看演示案例第一步:编写当前路径下的Dockerfile,将第一
2020-12-25 22:16:13 2312
原创 C语言操作Redis(hiredis库)
一、hiredis库简介Hiredis是redis数据库一个轻量的C语言客户端库 之所以轻量是由于它只是简单的提供了对redis操作语句支持的接口,并没有实现具体的操作语句的功能。但正是由于这种设计使我们只要熟悉了通用的redis操作语句就可以很容易的使用该库和redis数据库进行交互 除了支持发送命令和接收应答/应答数据,它提供了对应答数据的解析操作。而且这个基于I/O层的数据流解析操作设计考虑到了复用性,可以对应答数据进行通用的解析操作 Hirides仅仅支持二进制安全的redis协议,所以你
2020-12-21 21:36:52 2260 1
原创 muduo网络库:21---muduo简介之(详解muduo多线程模型)
muduo的线程模型为one loop per thread+thread pool模型,在前面一篇文章的末尾曾简单的提起过:https://blog.csdn.net/qq_41453285/article/details/105104845 本节以一个Sudoku Solver(数独求解)例子为例,回顾了并发网络服务程序的多种设计方案,并介绍了使用muduo网络库编写多线程服务器的两种最常用手法 在后面“muduo编程示例”相关文章会展现muduo在编写单线程并发网络服务程序方面的能力与便捷性。本文
2020-12-21 20:12:04 1843
原创 Nginx:17---反向代理之(反向代理服务器的性能调优:缓冲数据、缓存数据、存储数据、压缩数据(gzip模块))
一、缓冲数据二、缓存数据三、存储数据四、压缩数据(gzip模块)
2020-12-21 10:32:29 1309 1
原创 Nginx:15---反向代理之(安全隔离:SSL流量加密、SSL客户端身份验证、基于原始IP地址阻止流量)
通过代理分开了客户端到应用程序服务器的连接,实现了安全措施。这是在一个架构中使用反向代理的主要原因之一。客户端仅直接连接运行反向代理的机器,这台机器应该足够安全,以至于攻击者找不到任何入口 安全是一个相当大的话题,我们在这里只是简单地就该要点来观察 在反向代理之前设置防火墙,仅允许公网访问80端口(如果HTTPS连接提供443端口,那么也包括该端口) 确保Nginx使用一个非特权用户运行(典型的用户WWW、webservd或者WWW-data,这依赖于具体的操作系统) 加密的流量可以防止窃听
2020-12-21 10:32:22 13786
原创 服务/软件管理:49---VMware下安装Mac OS
一、为VMware解锁Mac OS系统默认的情况下,VMware是不可以安装Mac OS系统的。例如在新建一个虚拟机时是找不到Mac OS这个选项的,因此我们需要先在VMware中解锁Mac OS系统解锁Mac OS只需要下载一个文件即可,下载网址为:https://github.com/theJaxon/unlocker,下载完成之后进入文件夹,点击win-install.cmd即解锁...
2020-12-21 00:28:37 404 2
原创 Lua:09---OS库:rename()、remove()、exit()、getenv()、execute()
一、os.rename()该函数用于文件重命名二、os.remove()该函数用于移除(删除)文件三、os.exit()该函数用于终止程序的执行 参数: 参数1:可选的,表示该程序的返回状态,可以是一个数值(0表示执行成功)或者一个布尔值(true表示执行成功) 参数2:可选的,当值为true时会关闭LUa状态并调用所有析构器释放所占用的所有内存(这种终止方式通常是非必要的,因为大多数操作系统会在进程退出时释放其占用的所有资源) 四、os.getenv()该函数用于获取某个环
2020-08-19 13:45:08 3027
原创 Lua:08---I/O库:input()、output()、write()、read()、lines()、open()、tmpfile()、flush()、setvbuf()、seek()、pope
一、前言由于Lua语言强调可移植性和嵌入型,所以Lua本身并没有提供太多与外部交互的机制。在真实的Lua程序中,从图形、数据库到网络的访问等大多数I/O操作,要么由宿主机实现,要么通过不包括在发行版中的外部库实现 单就Lua语言而言,只提供了ISO C语言标准支持的功能,即基本的文件操作等 对于文件操作来说,I/O库提供了两种不同的模型: 简单I/O模型 完整I/O模型 一、简单I/O模型简单I/O模型虚拟了一个当前输入流和一个当前输出流,其I/O操作是通过这些流实现的 I/O库把当
2020-08-19 13:17:30 3839
原创 Lua:07---Lua函数:函数语法、多返回值、可变长参数(table.pack()、select())、table.unpack()、尾调用
一、函数的定义Lua中函数定义的常见语法格式为:function 函数名(函数参数) -- 函数体end例如,下面是一个对序列'a'的元素进行求和的函数function add(a) local sum = 0 for i = 1, #a do sum = sum + a[i] end return sumend二、函数调用的注意事项是否需要带"圆括号"一般情况下,函数调用时需要带上圆括号(不论函数是否带有参数)。
2020-08-16 13:49:58 10785
原创 Lua:06---table表类型:表索引、表构造器、数组、序列、table标准库
一、表类型介绍表(Table)是Lua语言中最主要(事实上也是唯一的)和强大的数据结构 使用表,Lua语言可以以一种简单、统一且高效的方式表示数组、集合、记录和其他许多数据结构。也可以使用表来表示包(package)和其他对象(例如当调用math.sin时,对于Lua来说,实际上是以“字符串sin”为键检索“表math”) Lua语言的表本质上是一种辅助数组,这种数组不仅可以使用数值作为索引,也可以使用字符串或者其他任意类型的值作为索引(nil除外)基本使用可以使用构造器表达式来创建表。例如
2020-08-13 22:07:42 4573
原创 Lua:05---string字符串类型:lua字符串的使用、字符串标准库、Unicode标准库
一、Lua字符串介绍Lua语言中的字符串是一串字节组成的序列。在Lua语言中,字符使用8个比特位来存储 Lua语言中的字符串可以存储包括空字符在内的所有数值代码,这意味着我们可以在字符串中存储任意的二进制数据 我们也可以使用任意一种编码方式(UTF-8、UTF-16等)来存储Unicode字符串(在文章下面会详细介绍)二、字符串常量我们可以使用一对双引号或者单引号来声明字符串常量。例如:a = "a line"ab = 'another line'b双引号和单引号声明字符串是等
2020-08-11 23:24:24 3575
原创 Lua:04---number数值类型:interger、float、算术运算/关系运算/运算符优先级、math数学库、interger与float的转换
一、Lua数值类型发展在Lua 5.2及之前的版本中,所有的数值都以双精度浮点格式表示 从Lua 5.3版本开始,Lua语言为数值格式提供了两种选择: 整型值:称为interger的64位整型 浮点型值:称为float的双精度浮点类型 二、数值常量表示下面是一些合理的数值常量表示:40.4其中还可以使用科学记数法: 格式为一个可选的十进制部分外加一个可选的十进制指数部分) 科学记数法最终是一个浮点数 4.57e-30.3e125E+20三、类
2020-08-11 16:20:26 9071 1
原创 Lua:03---Lua数据类型(附加逻辑运算符)
一、Lua数据类型汇总Lua语言是一种动态类型语言,在这种语言中没有类型定义,每个值都带有其自身的类型信息 Lua有8种基本类型: nil:空 boolean:布尔 number:数值 string:字符串 userdata:用户数据 function:函数 thread:线程 table:表 使用type()函数可以获取一个值对应的类型名称,该函数的返回值为string类型:type(nil)type(true)type(10.4*3)type("Hel
2020-08-11 13:16:00 868
原创 Lua:02---Lua语法命名规范、;号的使用、Lua注释、Lua全局变量/局部变量、do-end代码块
一、Lua语法命名规范Lua语言对大小写是敏感的标识符命名规则Lua语言中的标识符(或名称)可以由:任意字母、数字、下划线组成,但是不能以数字开头 例如下面都是符合规则的命名ii10_ijaSomeWthaLongName其中以“下划线+大写字母”组成的标识符通常被Lua语言用作特殊用途,应该避免使用。例如:_VERSIONLua的保留字下面是Lua语言的保留字,不能用作标识符二、分号的使用在Lua语言中,分号的使用是可选的 例如,下面的使用都
2020-08-11 10:59:52 3863
原创 Lua:01---Lua语言介绍、运行Lua程序(lua解释器)
一、Lua语言介绍Lua语言从一开始就被设计为能与C/C++及其他常用语言开发的软件集成在一起使用的语言,这种设计带来了非常多的好处: 一方面, Lua语言不需要在性能、与三方软件交互等C语言已经非常完善的方面重复“造轮子”,可以直接依赖C语言实现上述特性,因而Lua语言非常精简 另一方面,通过引入安全的运行时环境、自动内存管理、良好的字符串 处理能力和可变长的多种数据类型, Lua 语言弥补了C语言在非面向硬件的高级抽象能力、 动态数据结构、鲁棒性、调试能力等方面的不足 Lua语言强大的
2020-08-11 10:34:43 13711
原创 网络云盘项目——HTTP接口介绍、功能介绍、服务端/客户端代码解析
本项目分为6篇博客文章完成: 1.项目总体介绍:https://blog.csdn.net/qq_41453285/article/details/107871393 2.Redis部署、MySQL部署、MySQL表设计:https://blog.csdn.net/qq_41453285/article/details/107871620 3.FastDFS部署:https://blog.csdn.net/qq_41453285/article/details/107874068 4.Ngin
2020-08-09 16:49:15 3350 6
原创 网络云盘项目——服务端部署、客户端部署、演示运行效果
一、服务端部署第一步:到Github中(https://github.com/dongyusheng/cloud-disk)将服务端的代码下载下来放到ubuntu中,如下图所示(只需要server目录就行了)把服务端代码下载之后,还需要修改一些地方 第二步:修改conf/目录下的cfg.json文件 redis:配置redis服务端的IP和地址 mysql:添加MySQL的相关信息,并且database设置为我们之前创建的colud_disk dfs_path:因为我们的服务端程序调用
2020-08-09 13:53:21 3231 18
原创 网络云盘项目——Nginx配置(配置Nginx访问FastCGI、FastDFS)
本项目分为7篇博客文章完成: 1.项目总体介绍:https://blog.csdn.net/qq_41453285/article/details/107871393 2.Redis部署、MySQL部署、MySQL表设计:https://blog.csdn.net/qq_41453285/article/details/107871620 3.FastDFS部署:https://blog.csdn.net/qq_41453285/article/details/107874068 4.Ngin
2020-08-09 13:44:35 2455
原创 网络云盘项目——FastDFS集群部署
本项目分为7篇博客文章完成: 1.项目总体介绍:https://blog.csdn.net/qq_41453285/article/details/107871393 2.Redis部署、MySQL部署、MySQL表设计:https://blog.csdn.net/qq_41453285/article/details/107871620 3.FastDFS部署:本文介绍的 一、安装fastdfs可以通过下载FastDFS的源码包来编译安装FastDFS FastDFS的安装就不详细介绍
2020-08-09 13:43:17 2430
SGI STL源码.zip
2020-08-26
QQChat.zip
2020-08-06
vrctorList.zip
2019-11-23
arrayList.cpp
2019-11-23
arrayList.zip
2019-11-22
USB DNW.zip
2019-11-11
01.OpenOCD with GUI setup.zip
2019-11-11
OpenJTAG.zip
2019-11-11
openwrt-17.01.4-17.01.4.zip
2019-10-16
LinEnum-master.rar
2019-09-21
webshell b374k.zip
2019-09-19
HTTPS单向认证通信
2019-09-14
PthreadPool.zip
2019-09-14
sqIi-labs,SQL注入平台
2019-08-06
glibc-2.27.tar.gz
2019-07-22
pthread_pool2.zip
2020-12-20
binarySearchTree.zip
2020-01-23
linkedBinaryTree.zip
2020-01-22
completeWinnerTree.zip
2020-01-12
maxHblt.zip
2019-12-22
maxHeap.zip
2019-12-21
arrayTree.zip
2019-12-16
hashChains.zip
2019-12-15
SGI STL源码.zip
2019-12-14
hashTable.zip
2019-12-13
skipList.zip
2019-12-12
sortedChain.zip
2019-12-08
derivedLinkedStack.zip
2019-12-05
derivedArrayStack.zip
2019-12-05
squareMatrix.zip
2019-11-30
单链表chain.zip
2019-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人