自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

红尘道,红尘练心

GO|Java|C++|PHP|JS|C|python|Scala

  • 博客(473)
  • 资源 (4)
  • 收藏
  • 关注

原创 【PHP】自研框架QPHP,qphp框架使用

QPHP计划:1.C语言实现php连接池功能,php扩展形式2.php多线程的实现开发功能:1.qphp是一个轻量级的phpmvc框架框架执行时间:6毫秒,thinkphp执行时间:19毫秒2.支持mysql,oracle,memcache,redis3.jwt生成token,和验证4.增加简单路由功能5.新增命名空间namespace

2022-06-30 16:50:39 827

原创 【PHP】PHP实现RSA加密,解密,加签,验签

2.公钥用于对数据进行加密,私钥用于对数据进行解密;私钥用于对数据进行签名,公钥用于对签名进行验证。1.php RSA生成公私钥。

2024-01-02 00:27:53 859

原创 【GOLANG】使用插件 Goanno 的方式来对方法、接口、结构体注释模板配置

直接 使用插件 Goanno 的方式来对方法、接口、结构体注释模板配置。1、简单安装 Goanno 插件。

2023-12-30 13:54:32 615

转载 【工作笔记】FIO是测试IOPS的非常好的工具,用来对磁盘进行压力测试和验证。

iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。进行磁盘测试的时候,我们可以使用iostat 等监控工具,查看所有磁盘当前的读写状态监控磁盘IO命令:iostat –mx 1iostat使用范例:-d: 显示该设备的状态的参数;-x:是一个比较常用的选项,该选项将用于显示和io相关的扩展数据。

2023-09-20 13:12:31 385

转载 【分布式系统测试】vdbench的使用教程——裸盘测试和文件系统测试ceph

iorate= 常用可选值为100、max,此工作负载的固定I/O速率 --当参数值为100时,以每秒100个I/Os的速度运行工作负载,当参数值设置为一个低于最大速率的值时,可以达到限制读写速度的效果 --当参数值为max时,以最大的I/O速率运行工作负载,一般测试读写最大性能时,该参数值均为max。3、在报告里面还会根据设备显示io个延时的信息,也就是只要是测试设备,每一个的性能指标都能查到,这个的好处就是检测集群里面的io是不是均匀的,如果做了qos,设备的测试性能值是不是跟设置限制一样。

2023-09-20 13:09:03 1340

转载 【PHP】php7.3的composer依赖升级为php8.0

1) 在win cmd下运行php –version显示为原来的版本5.5。好吧,其实已经有答案了,一开始没有反应过来,这个5.5是因为我配置了环境变量,所以一直指向我原来的PHP目录,导致composer失败。2)解决方案:在 我的电脑->属性->高级->环境变量 中添加最新的PHP版本为环境变量,但是必须在之前环境变量的前面,当然也可以把之前的PHP环境变量删除。3)重启cmd或phpstorm运行composer install 就可以了。我直接改这个然后composer update就报错了。

2023-08-11 21:36:41 277

转载 【权限系统】权限系统设计模型分析(DAC,MAC,RBAC,ABAC)

权限系统设计可谓博大精深,这篇文章只是介绍了一点皮毛。随着人类在信息化道路上越走越远,权限系统的设计也在不断创新,但目前好像处在了平台期。可能因为在RBAC到ABAC之间有着巨大的鸿沟,无法轻易跨越,也可能是一些基于RBAC的微创新方案还不够规范化从而做到普及。不过在服务化架构的浪潮下,未来这一块必然有极高的需求,也许巨头们已经开始布局了。

2023-07-26 16:23:50 407

原创 【LeetCode】笔试题LeetCode

【代码】【LeetCode】笔试题LeetCode。

2023-03-28 21:18:20 105 1

转载 [Bigdata]Ranger权限管理(用户认证kerberos)

UI界面:http://192.168.101.179:6080 (admin/bigdata123)组件进程名启动命令UnixAuthenticationService(root用户可见)ranger-usersync start/stop/restart(root用户下启动)Hive Plugin启动命令:至此完成了一下功能通过ranger来对hiveserver2的权限进行验证usersync组件定时同步LDAP的hive用户到Ranger中。

2023-03-25 21:50:51 2272

转载 【Redis】Redis Cluster集群原理

Redis Cluster是Redis官方提供的集群解决方案。由于业务的飞速增长,单机模式总会遇到内存、性能等各种瓶颈,这个时候我们总会喊,上集群啊。就跟我家热得快炸了,你总喊开空调呀一样。的确,上集群可以解决大多数问题,但是在使用集群的过程中,不可避免会遇到这样那样的问题,这个时候怎么办呢,各种百度各种群里去问吗?NO,作为开发人员,在享受第三方提供的方便前,有必要去了解其基本的工作机制,这样才能在遇到问题时快速定位,方便下手。本篇文章主要是梳理Redis集群的原理和Java客户端JedisCluster

2023-02-08 18:21:29 221

原创 【software】常见流氓软件

1.360软件系列,流氓软件。3.wps办公软件,流氓软件。2.金山安全系列,流氓软件。删不干净,卸载不干净。

2023-01-29 18:05:42 4044

转载 【Bigdata】数据中台总体架构图

数据中台是在底层存储计算平台与上层的数据应用之间的一整套体系,屏蔽掉底层存储平台的计算技术复杂性,降低对技术人才的需求,可以让数据的使用成本更低。现在您已经知道了,数据中台离不开这几个模块:数据汇聚、数据开发、资产管理、数据安全、数据服务。那么赶紧跟上我的脚步潜入内部去一探究竟吧。链接:https://www.jianshu.com/p/ffd9a21f296d。数据安全体系、数据运营体系保障数据中台可以长期健康、持续运转。通过数据中台的数据汇聚、数据开发模块建立企业数据资产。

2023-01-23 11:41:30 303

原创 【Scala】Scala操作MongoDB

【代码】【Scala】Scala操作MongoDB。

2023-01-21 16:26:04 338

原创 【GIT】git本地代码上传到github

执行完后,如果没有异常,等待执行完就上传成功了,中间可能会让你输入Username和Password,你只要输入github的账号和密码就行了。后面的https链接地址换成你自己的仓库url地址,也就是上面红框中标出来的地址。如果想添加某个特定的文件,只需把.换成特定的文件名即可。第七步,也就是最后一步,上传代码到github远程仓库。第五步:重点来了,将本地的仓库关联到github上。cd到你的本地项目根目录下,执行git命令。第三步:将add的文件commit到仓库。第一步:建立git仓库。

2023-01-18 21:22:19 363

转载 【BIGDATA】大数据实时数仓、离线数仓、数据湖之间的关系

例如:在统计实时交易订单时,可能实时统计的结果需要当日分钟级别向外展示,T+1后才能展示昨日总的交易订单数,显然,后者是T+1每日离线批处理统计结果,那么假设当日有些用户进行了订单取消有可能T+1后统计统计结果与当日实时展示数据出现不一致问题,那么这里就需要使用数据服务来进行处理,统一数据,决定如何使用数据。这个时期,在企业信息化的过程中,随着信息化工具的升级和新工具的应用,数据量变的越来越大,数据格式越来越多,决策要求越来越苛刻,数据仓库技术在大数据场景中被广泛使用。

2022-12-17 03:53:16 760

原创 【Centos7】centos7最小化安装后,再按装图像界面GNOME Desktop

这时,我们可以通过命令 startx 进入图形界面,第一次进入会比较慢,请耐心等待。(可能需要重启,命令为reboot)经过上面的操作,系统启动默认还是命令行页面的,需要我们进行切换。因为权限限制,所以我们需要进入 root 模式,开机使用 root 登陆或者系统运行中切换为 root 用户均可。然后我们开始安装我们需要的图形界面软件,GNOME(GNOME Desktop)在这里我们可以检查一下我们已经安装的软件以及可以安装的软件,命令为。1、首先安装X(X Window System),命令为。

2022-10-17 10:47:46 1457

原创 【Centos7】VirtualBox下安装CentOS7并联网(外网,本地都ping通过)

点击新建,然后按如下来分别选择Linux ,Red Hat(64-bit)建议设3G内存然后选择虚拟硬盘动态分配就是一次性不占用这么大硬盘,会动态增加硬盘使用空间这里设置虚拟机存储的物理位置,比较在意C盘空间的话,可以放在其他空闲的磁盘上然后启动刚刚创建好的虚拟机。选择相应的镜像文件,从本地磁盘上导入虚拟机里,点击右侧的文件夹有注册的选项,详见下下张图点击完启动后,会进入系统设置界面,然后选择第一项Install...,完毕后选择语言接着配置网络。

2022-10-02 00:51:19 1048

原创 【JAVA】Java实现rpc框架QJAVA所需方法(类似Dubbo)

如果安装了一个安全管理器,那么这个构造函数将会在覆盖ObjectInputStream.readFields或ObjectInputStream.readUnshared方法的子类的构造函数直接或间接调用时检查“enableSubclassImplementation”SerializablePermission。可以通过使用流的文件来实现对象的持久存储。创建绑定到指定端口的服务器套接字。ObjectInputStream确保从流中创建的图中的所有对象的类型与Java虚拟机中存在的类匹配。

2022-10-01 16:46:41 617

转载 【JS】addEventListener方法介绍

第三个参数useCapture:设置传递的类型,默认值为false,即冒泡传递(可省略);使用 attachEvent 方法有个缺点,this 的值会变成 window 对象的引用而不是触发事件的元素。addEventListener(),事件监听,用于向指定的元素添加事件监听。在捕获中,外部元素的事件会被先触发,然后才会触发内部元素的事件。在冒泡中,内部元素的事件会先被触发,然后再触发外部元素;(它允许给一个事件注册多个监听器,且不会覆盖已存在的事件)事件的传递有两种方式:冒泡与捕获。

2022-09-07 23:25:19 5557

原创 【JS】call方法介绍

如果一个函数不是 JavaScript 对象的方法,那么它就是全局对象的函数(参见前一章)。在 JavaScript 中,函数是对象的方法。方法,您可以编写能够在不同对象上使用的方法。下面的例子创建了带有三个属性的对象(

2022-09-07 23:22:17 217

转载 【JS】defineProperty方法介绍

由于Object.defineProperty可以给对象定义属性,我们通过value,可以动态地将obj对象的属性动态地添加给target中。【注意】writable默认值为false,即不加writable方法,target的值也不可写/修改。【注意】set方法只有在设置/修改指定属性值的时候,才会触发,即调用set下的匿名函数。【注意】get方法只有在获取指定属性值的时候,才会触发,即调用get下的匿名函数。set方法的值也是一个函数,定义时会自动注入一个参数,此参数会设置属性的值。

2022-09-07 23:10:36 467

原创 【JS】reduce方法介绍

reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。reduce() 可以作为一个高阶函数,用于函数的 compose。注意: reduce() 对于空数组是不会执行回调函数的。

2022-09-07 22:07:09 87

转载 【JAVA】编写冒烟测试用例

Test(dataProvider = “front_login”,description = “登录”)冒烟测试是随着版本转测进行的,它应该是一个开关(判断版本能否转测试),而不是一个研发流程中的测试阶段。数据与测试代码分离(使用数据驱动方式来实现,可以通过读取excel文件、数据库等方式来实现)这种测试强调程序的主要功能进行的验证,而不会对具体的功能进行更深入的测试。冒烟测试就是版本转测试之前,对系统的基本功能进行简单的测试。冒烟测试用例一般选取的是测试用例中level 0的用例,保证主功能可用。

2022-09-04 17:06:36 835

原创 【DesignModel】职责链模式(Chain of Responsibility Pattern)

基本介绍职责链模式(Chain of Responsibility Pattern), 又叫 责任链模式,为请求创建了一个接收者对象的链(简单示意图)。这种模式对请求的发送者和接收者进行解耦。职责链模式通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。这种类型的设计模式属于行为型模式。...

2022-08-29 01:07:33 108

原创 【DesignModel】策略模式(Strategy Pattern)

策略模式(Strategy Pattern)中,定义 算法族(策略组),分别封装起来,让他们之间可以互相替换,此模式让 算法的变化独立于 使用算法的客户这算法体现了几个设计原则,第一、把变化的代码从不变的代码中分离出来;第二、针对接口编程而不是具体类(定义了策略接口);第三、多用组合/聚合,少用继承(客户通过组合方式使用策略)。...

2022-08-29 01:04:37 151

原创 【DesignModel】状态模式(State Pattern)

基本介绍状态模式(State Pattern):它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换当一个 对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类。...

2022-08-29 01:02:05 108

原创 【DesignModel】解释器模式(Interpreter Pattern)

基本介绍在编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。这里的词法分析器和语法分析器都可以看做是解释器解释器模式(Interpreter Pattern): 是指给定一个语言( 表达式), 定义它的文法的一种表示,并 定义一个解释器,使用该 解释器来解释语言中的句子( 表达式)应用场景-应用可以将一个需要解释执行的语言中的句子表示为一个抽象语法树-一些重复出现的问题可以用一种简单的语言来表达。...

2022-08-29 00:59:18 87

原创 【DesignModel】备忘录模式(Memento Pattern)

基本介绍备忘录模式(Memento Pattern)在 不破坏封装性的前提下,捕获 一个对象的内部状态,并在该对象之外保存这个状态。这样以后就 可将该对象恢复到原先保存的状态可以这里理解备忘录模式:现实生活中的备忘录是用来记录某些要去做的事情,或者是记录已经达成的共同意见的事情,以防忘记了。而在软件层面,备忘录模式有着相同的含义,备忘录对象主要用来记录一个对象的某种状态,或者某些数据,当要做回退时,可以从备忘录对象里获取原来的数据进行恢复操作备忘录模式属于行为型模式。...

2022-08-29 00:56:37 79

原创 【DesignModel】中介者模式(Mediator Pattern)

基本介绍中介者模式(Mediator Pattern),用一个 中介对象来封装一系列的对象交互。中介者使各个对象不需要显式地相互引用,从而使其 耦合松散,而且可以独立地改变它们之间的交互中介者模式属于行为型模式,使代码易于维护比如 MVC 模式,C(Controller 控制器)是 M(Model 模型)和 V(View 视图)的中介者,在前后端交互时起到了中间人的作用。...

2022-08-29 00:53:49 76

原创 【DesignMode】观察者模式(Observer Pattern)

基础介绍,又叫,定义对象间一种一对多的依赖关系(注册),使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新(通知)。说白了就是个注册,通知的过程。

2022-08-29 00:51:01 85

原创 【DesignMode】迭代器模式(Iterator Pattern)

基本介绍迭代器模式(Iterator Pattern)是 常用的设计模式,属于行为型模式如果我们的集合元素是用不同的方式实现的,有数组,还有 java 的集合类,或者还有其他方式,当客户端要遍历这些集合元素的时候就要使用多种遍历方式,而且还会暴露元素的内部结构,可以考虑使用迭代器模式解决。迭代器模式, 提供一种遍历集合元素的统一接口,用 一致的方法遍历集合元素,不需要知道 集合对象的底层表示,即:不暴露其内部的结构。...

2022-08-29 00:47:16 65

原创 【DesignMode】访问者模式(Visitor Pattern)

访问者模式(Visitor Pattern),封装一些作用于某种数据结构的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。主要将数据结构与数据操作分离,解决 数据结构和操作耦合性问题访问者模式的基本工作原理是:在被访问的类里面加一个对外提供接待访问者的接口访问者模式主要应用场景是:需要对一个对象结构中的对象进行很多不同操作(这些操作彼此没有关联),同时需要避免让这些操作"污染"这些对象的类,可以选用访问者模式解决。...

2022-08-29 00:42:11 64

原创 【DesignMode】命令模式(Command Pattern)

命令模式(Command Pattern):在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计命名模式使得 请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活,实现解耦。在命名模式中,会将一个请求封装为一个对象,以便使用不同参数来表示不同的请求(即命名),同时命令模式也支持可撤销的操作。通俗易懂的理解:将军发布命令,士兵去执行。.........

2022-08-29 00:36:04 65

原创 【GO】go的protobuf报错protoc-gen-go: unable to determine Go import path for “pb/msg.proto“,a “go_package“

/给C#提供的选项。package pb;

2022-08-28 23:43:58 334

转载 【GO】go语言中return语句可以带返回值,也支持不带返回值

可以在有一到多个命名返回值的函数中,写无需声明返回值的return语句。这种情况下,返回值将是命名的返回值,它们在函数入口处被初始化为其类型的零值,并且可以在函数体通过赋值语句来改变它们。go语言中return语句可以带返回值,也支持不带返回值。下面是不带返回值的一些问题。//3、下面这个if语句正常,并且函数返回3, 4。如果不赋值,函数内就一个return语句,结果为。2、下面这个if语句报错。//直接返回,无需声明返回值。//1、下面这个if语句正常。//直接返回,无需声明返回值。...

2022-08-27 22:26:24 1109

原创 【GO】Go 语言 select 语句(select 的功能和poll, epoll 相似)

select是Go中的一个控制结构,类似于用于通信的switch语句。每个case必须是一个通信操作,要么是发送要么是接收。select随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。一个默认的子句应该总是可运行的。这里的通信,可以简单的理解为IO(输入输出),例如如下代码。...

2022-08-26 15:19:02 281

转载 【GO】go语言channel的关闭管道的遍历

使用内置函数close可以关闭channel,当channel关闭后,就不能再向channel写数据了,但是仍然可以从该channel读取数据。3)不使用for进行遍历,假如使用for进行遍历长度为100的channel数据,最后拿出来的只有50条。2)在遍历时,如果channel已经关闭,则会正常遍历数据,遍历完后,就会退出遍历。// 如果在遍历时没有关闭channel,则会出现deadlock错误。1)在遍历时,如果channel没有关闭,则会出现deadlock 的错误。1. channel的关闭。.

2022-08-26 14:48:32 671

转载 【GO】go语言中map定义使用

在go语言中make和new都是创建map类型的方法,但是make对应的直接是实体,而new对应的则是一个指针,new方法创建的map是需要初始化后才可以被引用。map相当于python的字典,是key和value的一种集合。`map[zhangsan:工程师]map[zhangsan:工程师]make和new声明map的区别。map[四合院:beijing]...

2022-08-26 00:17:44 684

转载 【GO】Go语言append()为切片添加元素

往一个切片中不断添加元素的过程,类似于公司搬家,公司发展初期,资金紧张,人员很少,所以只需要很小的房间即可容纳所有的员工,随着业务的拓展和收入的增加就需要扩充工位,但是办公地的大小是固定的,无法改变,因此公司只能选择搬家,每次搬家就需要将所有的人员转移到新的办公点。不过需要注意的是,在使用 append() 函数为切片动态添加元素时,如果空间不足以容纳足够多的元素,切片就会进行“扩容”,此时新切片的长度会发生改变。通过查看代码输出,可以发现一个有意思的规律:切片长度 len 并不等于切片的容量 cap。

2022-08-25 14:29:28 1102

原创 【GO】go语言实例化结构体3中方式

Go语言可以通过多种方式实例化结构体,根据实际需要可以选用不同的写法。

2022-08-25 13:53:14 391

go手册,Go的语法接近C语言,但对于变量的声明有所不同。Go支持垃圾回收功能

Go是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。它可以在一台计算机上用几秒钟的时间编译一个大型的Go程序。Go为软件构造提供了一种模型,它使依赖分析更加容易,且避免了大部分C风格include文件与库的开头。Go是静态类型的语言,它的类型系统没有层级。因此用户不需要在定义类型之间的关系上花费时间,这样感觉起来比典型的面向对象语言更轻量级。Go完全是垃圾回收型的语言,并为并发执行与通信提供了基本的支持。按照其设计,Go打算为多核机器上系统软件的构造提供一种方法。 Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。 罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊(Ken Thompson)于2007年9月开始设计Go,稍后Ian Lance Taylor、Russ Cox加入项目。 Go是基于Inferno操作系统所开发的。Go于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后来追加了Windows系统下的实现。

2022-05-30

php手册PHP 函数的完整参考手册

PHP是创建动态网页的最流行的服务器端脚本语言,并且是开源免费的。 PHP代表超文本预处理器。PHP是一种非常流行且广泛使用的开源服务器端脚本语言,用于编写动态生成的Web页面。PHP最初由 Rasmus Lerdorf 于1994年创建。它最初被称为个人主页。 PHP脚本在服务器上执行,结果以纯HTML格式发送到Web浏览器。PHP可以与众多流行数据库集成,包括MySQL,PostgreSQL,Oracle,Microsoft SQL Server,Sybase等。PHP的当前主要版本是7.本教程中的所有代码都已针对最新版本的PHP 7进行了测试和验证。

2022-05-30

C++手册Programming languages — C++

C++手册C++ 是一种中级语言,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。C++ 可运行于多种平台上,如 Windows、MAC 操作系统以及 UNIX 的各种版本。 《C++ 教程》通过通俗易懂的语言来讲解 C++ 编程语言。

2022-05-30

java手册中英文java8,java9手册

java手册中英文java8,java9手册 Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 Java编程语言的风格十分接近C++语言。继承了C++语言面向对象技术的核心,舍弃了容易引起错误的指针,以引用取代;移除了C++中的运算符重载和多重继承特性,用接口取代;增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。太阳微系统对Java语言的解释是:“Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言” Java不同于一般的编译语言或解释型语言。它首先将源代码编译成字节码,再依赖各种不同平台上的虚拟机来解释执行字节码,从而具有“一次编写,到处运行”的跨平台特性。在早期JVM中,这在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的运行速度有了大幅提升。

2022-04-27

空空如也

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

TA关注的人

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