自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (7)
  • 问答 (6)
  • 收藏
  • 关注

原创 给root外的其他用户添加 crontab 定时任务

/etc/crontab 里加 crontab 任务必须指定用户 直接编辑 /var/spoll/cron/ 下面对应用户名的文件 crontab -u wwww -e (推荐这个指令)

2020-10-28 14:31:41 6961

原创 Redis set数据类型的常见业务场景

 set类型是string类型的集合,其特点是集合元素无序且不重复,每个集合最多可以存储 232- 1 个元素(40多亿),set类型主要有以下应用场景。  1. 好友/关注/粉丝/感兴趣的人集合  set类型唯一的特点使得其适合用于存储好友/关注/粉丝/感兴趣的人集合,集合中的元素数量可能很多,每次全部取出来成本不小,set类型提供了一些很实用的命令用于直接操作这些集合,如    a. sinter命令可以获得A和B两个用户的共同好友   b. sismember命令可以判断A...

2020-10-27 13:48:23 6198

原创 Centos7 编译安装 图片压缩 MozJPEG

官方教程https://github.com/mozilla/mozjpeg/blob/master/BUILDING.txt源码地址https://github.com/mozilla/mozjpeg/releases需 nasm 环境yum -y install build-essential nasm以 3.3.1 为例cd ~wget -O "mozjpeg-3.3.1.tar.gz" https://codeload.github.com/mozilla/mozj.

2020-10-26 17:08:09 6508

原创 CC攻击原理及防范方法

一、 CC攻击的原理:CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃。CC主要是用来攻击页面的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止。二、CC攻击的种类:  CC攻击的种类有三种,直接攻击,代理攻击,僵

2020-10-24 14:54:31 6064

原创 Redis常见面试题

介绍:Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API的非关系型数据库。传统数据库遵循 ACID 规则。而 Nosql(Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称) 一般为分布式而分布式一般遵循 CAP 定理。Github 源码:https://github.com/antirez/redisRedis 官网:https://redis.

2020-10-24 11:34:56 8803 3

原创 2020最新腾讯PHP试题(附答案及解析)

一、单选题(共29题,每题5分)1.PHP执行的时候有如下执行过程:Scanning(Lexing) - Compilation - Execution - Parsing,其含义分别为:A、将PHP代码转换为语言片段(Tokens)、将Tokens转换成简单而有意义的表达式、顺次执行Opcodes、将表达式编译成OpocdesB、将PHP代码转换为语言片段(Tokens)、将表达式编译成Opocdes、顺次执行Opcodes、将Tokens转换成简单而有意义的表达式C、将PHP代码转换为语

2020-10-23 11:32:51 27535 3

转载 悲观锁 & 乐观锁

悲观锁(Pessimistic Lock),就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁、表锁、读锁、写锁等,都是在做操作之前先上锁。乐观锁(Optimistic Lock),就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制实现。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像

2020-10-23 10:48:12 5122

原创 解决docker容器运行supervisor报错“Unlinking stale socket /tmp/supervisor.sock”

通过dockerrun -d 方式启动容器报“Unlinking stalesocket/tmp/supervisor.sock”错误,而通过docker run -it 启动后手动执行 /usr/bin/supervisord -c /etc/supervisor.conf则没问题解决:将Dockerfile中的CMD [“/usr/bin/supervisord”, “-c”, “/etc/supervisord.conf”] 修改成ENTRYPOINT[“/usr/bin/superv...

2020-10-22 14:26:20 7468

原创 大厂必考 - mysql锁机制及原理

参考https://dev.mysql.com/doc/internals/en/innodb.html 《MySQL技术内幕:InnoDB存储引擎(第2版)》 https://juejin.im/post/6844903974282362887 mysql锁机制及原理—锁的诠释锁是数据库系统区别于文件系统的一个关键特性。锁机制用于管理对共享资源的并发访问,并确保数据的完整性和一致性,实现事务的隔离性要求。MySQL、Microsoft SQL Se...

2020-10-21 14:11:18 9858 1

转载 elasticsearch painless 详细教程

何为painless painless的特性 简单的例子 具体例子 初始化数据 用painless获取doc的值 通过painless更新对象值 单条记录更新 批量更新 Dates 记得以前写过一个postman的最强教程,只可惜因为工作的原因,没再继续做测试,最终也没有写完。有点丧。。。这段时间在研究实时日志分析系统ELK,发现围绕ES这个搜索引擎或者说document数据库而开发的各种工具和周边居然是令人震惊的完善。ES真的不单单是一个...

2020-10-21 10:07:39 6588

原创 学习Swoole需要掌握哪些基础知识

参考swoole手册:https://wiki.swoole.com/#/other/tools多进程/多线程了解Linux操作系统进程和线程的概念 了解Linux进程/线程切换调度的基本知识 了解进程间通信的基本知识,如管道、UnixSocket、消息队列、共享内存SOCKET了解SOCKET的基本操作如accept/connect、send/recv、close、listen、bind 了解SOCKET的接收缓存区、发送缓存区、阻塞/非阻塞、超时等概念IO复用了解select.

2020-10-20 21:15:47 5284

原创 Swoole 常驻内存以及如何避免内存泄漏

关联阅读:https://cloud.tencent.com/developer/article/1700076 内存泄漏检测工具的使用这篇文章参考了:https://deepmind.t-salon.cc/article/1695 swoole的详细介绍 在传统的web开发模式中,我们知道,每一次php请求,都要经过php文件从磁盘上读取、初始化、词法解析、语法解析、编译等过程,而且还要与nginx或者apache通信,如果再涉及数据...

2020-10-20 21:07:29 7560

原创 Redis的五大数据类型的底层实现

1、简介Redis的五大数据类型也称五大数据对象;前面介绍过6大数据结构,Redis并没有直接使用这些结构来实现键值对数据库,而是使用这些结构构建了一个对象系统redisObject;这个对象系统包含了五大数据对象,字符串对象(string)、列表对象(list)、哈希对象(hash)、集合(set)对象和有序集合对象(zset);而这五大对象的底层数据编码可以用命令OBJECT ENCODING来进行查看。redisObject结构1 typedef struct redisObjec.

2020-10-20 20:19:11 5260

转载 Mysql redo、undo、bin、relay log 区别

redo log 和 undo logundo log:为了实现事务原子性,要么全部完成commit,要么全部回滚rollback,Innodb用于实现mvcc(多版本并发控制) 例如:将user=’A’ 改为 user=’B’,则undo log中会记录下user=’A’和事务版本等信息 一旦事务完成,所有修改必须被记录下,保证数据一致性(后面redo log解释)redo log:如果使用undo log作为持久化数据,意味着修改数据和undo log必须同时写入磁盘持久化,这必定带来

2020-10-20 20:04:29 5079

转载 网络IO的理解

Unix/Linux系统下IO主要分为磁盘IO,网络IO,我今天主要说一下对网络IO的理解,网络IO主要是socket套接字的读(read)、写(write),socket在Linux系统被抽象为流(stream)。网络IO模型在Unix/Linux系统下,IO分为两个不同阶段:等待数据准备好 从内核向进程复制数据阻塞式I/O阻塞式I/O(blocking I/O)是最简单的一种,默认情况下,socket 套接字的系统调用都是阻塞的,我以recv/recvfrom 理解一下网络IO的模型

2020-10-19 19:01:26 6776

原创 php7 安装zip扩展详细教程

扩展包 wgethttp://pecl.php.net/get/zip-1.19.1.tgz (截止2020.10.19 最新版,其他版本可以到http://pecl.php.net页面搜索zip获取)解压 并进入 tar-zxvfzip-1.19.1.tgz cdzip-1.19.1/usr/local/php/bin/phpize  ./configure--with-php-config=/usr/local/php/bin/php-config ...

2020-10-19 11:45:12 9232

原创 30道2020年腾讯PHP面试题整理(附带答案)

一、PHP开发部分1.合并两个数组有几种方式,试比较它们的异同答:1)array_merge()2)’+’3)array_merge_recursivearray_merge 简单的合并数组array_merge_recursive 合并两个数组,如果数组中有完全一样的数据,将它们递归合并array_combine 和 ‘+’ :合并两个数组,前者的值作为新数组的键2.请写一个函数来检查用户提交的数据是否为整数(不区分数据类型,可以为二进制、八进制、十进制、十六进制数字)

2020-10-19 00:30:08 6947 1

转载 Jenkins构建时选择发布的分支

一、回顾之前的方法前面的项目构建中,对于构建的分支这个参数,我是通过在"参数化构建过程"中通过添加"字符参数"来实现的,并且填写默认值。在构建时,在branch这一栏中已经存在了配置的默认值,当然可以把这个默认值改为任何一个存在的分支再进行发布。二、实现构建分支的选择开发的分支原来越多了,每次开发环境发布的分支都不是固定的,在构建时,开发人员是手动输入分支名的,在这种发布的分支不固定的情况在,上面这种方法显然是不方便的。在这种情况下,Jenkins的Git Parameter插件

2020-10-16 21:44:28 7898

转载 Golang经典面试题

1. 写出下面代码输出内容package mainimport ( "fmt")func main() { defer_call()}func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Println("打印中") }() defer func() { fmt.Println(

2020-10-16 21:31:26 5878

原创 goLang 精编 选择、填空、判断 共100题

选择题1.【初级】下面属于关键字的是()A. funcB. defC. structD. class参考答案:AC2.【初级】定义一个包内全局字符串变量,下面语法正确的是()A. var str stringB. str := ""C. str = ""D. var str = ""参考答案:AD3.【初级】通过指针变量p访问其成员变量name,下面语法正确的是()A. p.nameB. (*p).nameC. (&p).na...

2020-10-16 21:24:14 8955

原创 php7.2.24 调用rdkafka 1.5.0 扩展项目实战

生产者脚本:<?php$conf = new RdKafka\Conf();$conf->setDrMsgCb(function ($kafka, $message) { file_put_contents("./dr_cb.log", var_export($message, true).PHP_EOL, FILE_APPEND);});$conf->setErrorCb(function ($kafka, $err, $reason) { file_put

2020-10-16 21:12:47 5490

转载 es 查询语句提升权重 - boost 关键词的使用

其他阅读:https://www.elastic.co/guide/cn/elasticsearch/guide/current/query-time-boosting.html 查询时权重提升 https://www.elastic.co/guide/cn/elasticsearch/guide/current/function-score-filters.html过滤集提升权重当然bool查询不仅限于组合简单的单个词match查询,它可以组合任意其...

2020-10-15 21:39:11 18609

原创 MySQL 一次查询请求的执行流程

MySQL的流程分析1.连接   1.1客户端发起一条Query请求,监听客户端的‘连接管理模块’接收请求  1.2将请求转发到‘连接进/线程模块’  1.3调用‘用户模块’来进行授权检查  1.4通过检查后,‘连接进/线程模块’从‘线程连接池’中取出空闲的被缓存的连接线程和客户端请求对接,如果失败则创建一个新的连接请求2.处理   2.1先查询缓存,检查Query语句是否完全匹配,接着再检查是否具有权限,都成功则直接取数据返回  2.2上一步有失败则转交给‘命令解析器’..

2020-10-15 09:37:13 5746

原创 大厂必考 - MySQL索引

言简意赅,MySQL 索引的重要性不言而喻。MySQL 索引历经了多个版本的迭代,从语法到底层数据结构都有很多改变。MySQL 索引,我们真的了解么?好了,今天我们一起来看看 MySQL 索引的前世今生,一起聊聊索引的那些事儿。什么是索引?在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所...

2020-10-14 16:47:57 5529

转载 Jenkins设置GitLab push事件发生时自动构建

下面的步骤建立在已经新建好一个item之后,这里主要讲解如何设置Gitlab 上的project 有push事件时,触发Jenkins构建。设置工作空间工作空间就是要指定你的项目在哪台机器以及哪个目录下构建。 设置工作节点和自定义工作目录。 其中红线1部分是设置构建的结点(也就是在哪台机器上构建你的项目,可以是本地自己的电脑也可以是远程服务器),这里节点的名称是在系统配置里设置的节点。红线2部分则是节点机器上的某一个目录路径(也就是将你的项目放置在该目录下)。显示名称则是在Jenk

2020-10-13 13:31:56 5977

转载 gitlab使用webhook向jenkins发送请求,报错 Requests to the local network are not allowed

以下是官方给出解释:链接:https://docs.gitlab.com/ee/security/webhooks.htmlIf you have non-GitLab web services running on your GitLab server or within its local network, these may be vulnerable to exploitation via Webhooks.WithWebhooks, you and your projec...

2020-10-13 11:22:47 5783

原创 jenkins用户角色权限配置

https://blog.csdn.net/yajie_12/article/details/79694861 mysql 优化面试题https://zhuanlan.zhihu.com/p/59697340 【MySQL】20个经典面试题https://blog.csdn.net/u014209205/article/details/83051001 MySQL 常见面试题汇总https://www.cnblogs.com/williamjie/p/1...

2020-10-11 23:33:05 5591

原创 yii2运行流程及与laravel框架比较

一、yii2框架与laravel框架的比较1.开发速度:两者差不多,yii2有gii脚手架,laravel有artisan2.代码可读性:yii2代码可读性比laravel好得多3.开源生态圈:laravel社区比yii2社区活跃,第三方工具多二、yii2运行流程如下:1、用户向入口脚本 web/index.php 发起请求。2、入口脚本加载应用配置并创建一个应用 实例去处理请求。3、应用通过请求组件解析请求的 路由。4、应用创建一个控制器实例去处理请求。5...

2020-10-11 17:48:02 6012

原创 goLang实现: 使用两个线程,一个输出字母,一个输出数字,交替输出1A2B3C....26Z

java的实现我们来练习使用go实现package mainimport ( "fmt")func main() { var h = 65 var c, d, e = make(chan int), make(chan int), make(chan int) go func() { for i := 0; i < 26; i++ { <-c fmt...

2020-10-11 17:30:37 6244

转载 在k8s上部署第一个php应用

一.搭建nginx+php1.站点配置文件1.1创建nginx-configmap.yaml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

2020-10-11 15:19:38 6080

原创 es 7.4.0 详解删除记录的方法

_delete_by_query 命令是删除记录post请求:http://localhost:9200/index/_delete_by_query注:删除也是先走和查询一样的语法,只是最后的命令是 删除的命令{ "query":{ "term":{ "bookId":1 } }}这是清空{ "query": { "match_all": {} }}删除后语法{ "took": .

2020-10-10 16:58:20 8490 2

原创 计算一个整数,转换成二进制,里面有多少个1

解法1:右移 & 1int numberof1(int i){ int count = 0; while (n) { if (n & 1) { count++; } n = n >> 1; } rerutn count;}缺陷是:当该数为负数,例如0x8000000,右移不是得到0x40000000,而是0xc0000000,因为该数本身是一个负数,所以右移之后

2020-10-10 09:22:27 6008

原创 docker 工作中常用操作

--privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限-v /docker/redis/conf/redis.conf:/etc/redis/redis.conf 映射配置文件-v /docker/redis/data:/data:映射数据目录--appendonly yes:开启数据持久化 --restart=always 只要docker是启动的,容器就会跟着启动 --ip: 为容器制定一个固定的ip--net:...

2020-10-08 10:34:09 6083 1

原创 TiDB 和 MySQL的差异

世界级的开源分布式数据库 TiDB 自 2016 年 12 月正式发布第一个版本以来,业内诸多公司逐步引入使用,并取得广泛认可。对于互联网公司,数据存储的重要性不言而喻。在 NewSQL 数据库出现之前,一般采用单机数据库(比如 MySQL)作为存储,随着数据量的增加,“分库分表”是早晚面临的问题,即使有诸如 MyCat、ShardingJDBC 等优秀的中间件,“分库分表”还是给 RD 和 DBA 带来较高的成本;NewSQL 数据库出现后,由于它不仅有 NoSQL 对海量数据的管理存储能力、还支持传.

2020-10-06 23:04:43 13735 2

cgo 用法demo代码

go 调用c++代码的示例

2023-05-17

centos7 rpm安装yum所需要的包

centos7 rpm安装yum所需要的包,总共有20个, 打包整理好,方便有需要安装yum的用户,包里所有的资源都来自于网易镜像中心(http://mirrors.163.com/centos/7/os/x86_64/Packages/)

2020-12-11

navicat 连接mysql、mongodb工具

navicat 连接mysql、mongodb工具,可以方便快捷操作mysql 8版本、mongodb 4版本

2020-11-24

elasticsearch 7.4.0 docker-compose文件

快速部署elasticsearch 7.4.0版本 单机三节点docker 容器,方便在本地开发环境部署

2020-11-13

changeWinKey.reg

通过该脚本,可以在Windowns系统下将左Alt键修改为Appskey键,将右边的Appskey键改成Ctrl键

2020-06-30

TabNumberIndicator.jar

jetbrain系列软件的一个插件,官方库的快捷键是Alt+数字切换标签页,因为个人习惯,我把它改成Ctrl+数字 切换标签页,分享给有需要又不会改源码的朋友。安装是在jetbrain软件的插件安装页面选择本地安装后在弹出的文件选择器中选择该文件安装重启即可

2020-06-30

dnmp.rar docker部署lnmp环境包

通过docker快速部署lnmp+redis环境,只要到文件根目录执行docker-composer up即可

2020-06-30

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

TA关注的人

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