自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【redis】redis 锁

本文围绕 redis 的SETNX命令展开对“锁”的研究与实现。多个进程同时对 redis 执行命令,只有一个进程会成功,其余都会失败。上述命令中的代表被当作锁的 redis 键名,其类型为 String,代表该键的过期时间戳,下同。

2022-12-02 18:09:47 3636

原创 【scrapy、flask】如何在社区版 PyCharm 中调试 scrapy爬虫和 flask web 服务

在社区版 PyCharm 中如何调试 scrapy 爬虫和 flask web 服务

2022-11-04 19:52:50 1052

原创 【git】撤销指定文件的提交

如果在使用 git 过程中误提交了一些代码,可以按照如下步骤恢复修改。

2022-10-26 11:21:51 1325

原创 【linux】gitlab + jenkins 实现持续集成

项目开发过程中,会在服务器上不断地更新项目开发版本。因项目开发技术栈的不同,版本更新有时会是几行简单的命令,有时会是复杂耗时的部署步骤。我们可以用 jenkins(持续集成工具)来完成这些重复性的操作。本文以 jenkins 搭配 gitlab 的方式来记录一下“战斗”过程。

2022-05-16 15:50:59 520

原创 【mysql】左外连接查询中 on 和 where 的区别

在使用 mysql 的左外连接(left join)查询时,驱动表(left join左边的表),亦即数据需要全部被查出表的查询条件建议用设定,被驱动表(left join右边的表)的查询条件建议写到中,两者的关联条件必须写在中。这也是左外连接查询的语义所在。当然,也要结合业务场景、表索引等因素作灵活调整。另外,left join。本文为验证此结论,做如下探究。mysql 版本为 5.7.22。

2022-05-13 18:00:08 2499 1

原创 【linux】在定时任务中如何书写以另一个用户运行的多行命令

在 linux 操作系统下编写定时任务时,如果想以用户 user_a 身份运行一个脚本 demo.sh ,在 demo.sh 脚本中有以其他用户 user_b 身份执行的命令,书写格式可参考如下:#!/bin/bashapp_path="/var/www/test.abc.com"php_path="/usr/local/php/bin/php"web_user="nginx"is_nginx_run=`ps -ef | grep nginx | grep -v grep`is_phpfp

2022-04-28 16:58:56 370

原创 【celery】celery 初体验

软件环境fedora 33python 3.7.0celery 4.3.0redis 6.0.9初识 celerycelery 是一个分布式队列任务处理系统,她为我们提供了一系列的任务处理工具。结识 celery 缘于企业(媒体行业)生产中的一个文章抓取需求:把官方微信公众号上面不定期发布的文章同步到企业自己的信息库中。当然,celery 不仅给我们提供了定时,还提供了定期处理任务的工具。基于此背景,给出本文探究 celery 的一张导图:在本文中,我们使用 redis 作

2021-01-08 09:53:56 238 2

原创 【python】为项目创建 virtualenv 环境

如果一台服务器上跑有多个需要不同 python 版本的项目,那么为每一个项目创建一个 virtualenv 环境就很有必要了。本文将以搭建一个轻量级 web 服务器 flask 为例探讨如何搭建这一环境。软件环境fedora 33python 3.9.1搭建步骤创建项目创建项目的 virtualenv 环境用到命令 python -m venv --clear venv,第一个 venv 代表 python 的 venv 模块,第二个 venv 代表创建的目录名称。安装项目所需包

2020-12-31 16:34:22 251

转载 【linux】fedora 33 解决 IDE 编辑器中无法输入中文的问题

软件环境linux 发行版本: fedora 33输入法框架: ibus(系统默认)idea 编辑器版本: 2020.3pycharm 编辑器版本: 2020.3解决方案在点击编辑器工具栏 Help -> Edit Custom VM Options 打开的文件中添加-Drecreate.x11.input.method=true配置并重启编辑器。转载自https://github.com/libpinyin/ibus-libpinyin/issues/289...

2020-12-29 12:11:12 495

原创 【elasticsearch】编写自启动脚本

在本地虚拟机(CentOS 7)中进行 elasticsearch 学习和测试的时候,启动 elasticsearch 进程是一个需要等待的过程,和大家分享一份 elasticsearch 自启动脚本,内容如下:#!/bin/bash# chkconfig: - 59 75# description: elasticsearch daemon.ES="elasticsearch"ES_HOME="/usr/local/elasticsearch-7.6.2"ES_USER="elasti

2020-07-30 15:37:56 750

转载 【PHP】foreach 一个对象的私有属性

软件环境php 7.1.33 + windows 10 操作系统代码示例<?phpclass MyIterator implements Iterator{ private $_myArr = [ 'a' => 1024, 128, 'c' => 8421, 256 ]; /** * 当前元素的值 * * @return mixed */

2020-06-11 10:56:02 240

原创 【Git】创建和删除远程分支

说明: 本案例以创建和删除远程分支 bug-001 为中心展开创建远程分支 bug-001git checkout -b bug-001 # 创建本地分支并切换git push --set-upstream origin bug-001 # 创建远程分支删除远程分支 bug-001git checkout master # 切换到 master 分支git branch -d bug-001 # 删除本地 bug-001 分支git push --delete origin bug-

2020-05-28 15:15:19 291

原创 【PHP】php 源码之宏 PHP_FUNCTION

本文所用 php 源码版本为 7.1.33在 php 源码目录下的 main/php.h 头文件中定义了宏 PHP_FUNCTION,我们经常使用的 php 函数就是她来定义的,从上图中可以看到该宏定义为 ZEND_FUNCTION,而 ZEND_FUNCTION 定义在 Zend/zend_api.h 头文件中,在 C 语言宏定义中的 ## 代表连接在其左右的字符串。由上图中...

2020-04-20 15:08:17 399

原创 【C】标准库 stdarg.h va_start

简介C 标准库 stdarg.h 定义了一个变量类型(va_list)和三个宏(va_start,va_arg,va_end),其中va_start(va_list ap, last_arg) 用来初始化 ap 变量, last_arg 代表传递给函数的最后一个已知固定参数,即在定义的可变参数列表中省略号之前的参数;va_arg(va_list ap, type) 用来检索参数列表中下...

2020-04-17 10:20:57 252

原创 【elasticsearch】CentOS 7 安装 elasticsearch

安装说明本案例操作是在 vitualbox 中的 centos 7 虚拟机中进行,宿主机为 windows 10 系统。elasticsearch 版本为 7.6.2(指导文档地址)并以单机模式运行。操作步骤以 root 账户登录虚拟机。创建 elasticsearch 用户并配置相关权限。groupadd elasticsearchuseradd elasticsearch...

2020-04-08 16:44:20 201

原创 【Redis】centos 安装 redis

安装介绍本文将介绍在 centos 7 操作系统下如何安装 redis,并配置其支持远程连接访问。本文以 root 身份进行操作,安装 redis 版本为 5.0.7操作步骤cd /usr/localwget http://download.redis.io/releases/redis-5.0.7.tar.gztar xzf redis-5.0.7.tar.gzcd redis...

2020-01-05 21:16:29 186

原创 【Javascript】Content-Security-Policy upgrade-insecure-requests

业务场景在 https 协议下使用阿里云的 OSS 直传功能时,会出现相关错误提示导致图片无法上传解决方案可以在客户端页面 head 元素中添加 CSP meta 标签来解决,可参考如下资料:https://cloud.tencent.com/developer/section/1189878代码示例function set_content_security_policy() { ...

2020-01-02 16:48:16 4300

原创 【PHP】与命令行的交互

示例代码<?phpecho "please enter your text and give only a 'q' when you want to quit\n";while (($answer = getEnter()) != 'q') { echo "your enter is '{$answer}'\n\n";}echo 'by by';exit(0);fun...

2019-08-29 13:38:53 426

原创 【MySQL】语法 insert into ... on duplicate key update

在向 MySQL 中插入一条记录的时候,如果基于自增主键或唯一索引键来判断该记录存在的话,则更新该记录;如果不存在,则插入该记录。这就是语法 insert into … on duplicate key update 的功能。其中,基于主键还是唯一索引键的判断依据是根据表达式中的字段名称来确定的。具体见以下示例:With ON DUPLICATE KEY UPDATE, the affecte...

2019-08-16 17:16:49 1219

翻译 【gradle】用 Gradle 构建 Java 项目

软件环境CentOS Linux release 7.6.1810 (Core)Java openjdk version “11.0.4” 2019-07-16 LTSSDKMAN 5.7.3+337 (用来安装 gradle)gradle 5.5.1构建步骤运行以下命令安装 sdkman (若已安装 sdkman 可略过此步骤)$ curl -s "https://get.sd...

2019-08-12 15:24:36 735

原创 【vue】组件的使用

案例效果对 input 框输入的内容以列表形式展示,并在点击时删除对应的内容代码实例<!DOCTYPE html><html><head> <title>组件测试</title> <script src="./vue.js"></script></head><body> ...

2019-08-05 11:02:44 177

原创 【Javascript】事件的冒泡与捕获传递方式

事件有冒泡和捕获两种传递方式,冒泡传递方式先触发内部元素的事件,后触发外部元素的事件,捕获传递方式则相反。以下是测试代码示例:<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>冒泡与捕获</title></head><...

2019-07-30 11:02:58 680

原创 【PHP】php7 配置 xdebug 进行调试

php7.1、php7.4 配置 xdebug 调试windows 10 操作系统phpstudy(php-7.2.10-nts + Nginx)配置步骤phpinfo() 查看下图中的版本信息,到 https://xdebug.org/download.php 下载对应版本的 xdebug 扩展。拷贝步骤 1 中下载的 xdebug 扩展到 php 扩展目录(在本例中是 D:\phpStudy\PHPTutorial\p...

2019-07-15 14:13:52 984

原创 【Java】包(package)

环境介绍windows 10 操作系统Java jdk 12.0.1测试用例项目结构如下图:在 sources 目录下新建如下内容的文件 Hello.java,包名为 com.zpcodepackage com.zpcode;public class Hello { public static void main(String[] args) { System.out.p...

2019-07-01 13:54:51 585

原创 【PHP】composer 安装 Yii 2 高级项目模板

环境介绍windows 10 操作系统php 7.2.10 (≥ 5.4.0 即可)nginx 1.11.5mysql 5.5.53本文安装操作是在 G 盘根目录下进行安装步骤安装 composer 后执行以下命令安装应用程序:G:\> composer create-project --prefer-dist yiisoft/yii2-app-advanced yi...

2019-06-27 13:31:57 292

原创 【微服务】用 PHP “打开” gRPC

软件环境VirtualBox 下的 CentOS 7 操作系统,版本截图如下: 指导文档https://grpc.io/docs/quickstart/php.html“打开 gRPC”的步骤安装gRPC① 到 https://github.com/grpc/grpc 下载 gRPC repository,有条件的使用 git 下载 ② 下载完成后进入 grpc 目...

2019-06-12 17:06:37 1209

原创 【Linux】MySQL 基于二进制日志位置的主从配置

软件介绍Centos版本: CentOS Linux release 7.6.1810系统内核版本: Linux version 3.10.0-957.12.2.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Tue Ma...

2019-06-10 17:33:24 428

原创 【Linux】Centos 7 安装 MySQL 5.7

yum install cmake gcc gcc-c++ ncurses-devel githttps://dev.mysql.com/doc/refman/5.7/en/installing-source-distribution.htmlhttps://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization.html...

2019-06-06 14:26:19 122

原创 【C】函数指针

案例环境代码#include <stdio.h>int max(int x, int y){ return x > y ? x : y;}int main(){ int (* p)(int ,int) = & max; int a, b, c, d; printf("请输入三个整数:\n"); scanf("%...

2019-05-08 16:42:15 174

原创 【elasticsearch】批量更新数据

软件版本: php 5.6.31, elasticsearch 6.1.1代码:function actionArticle(){ $open_sites = Yii::$app-&amp;amp;amp;gt;getDb()-&amp;amp;amp;gt;createCommand( &amp;amp;quot;select indicator from {{%site}} where status = 1 order by id as..

2019-02-25 11:08:03 4348

原创 【Git】已有项目添加 git 管理

在已有项目目录下依次执行以下 git 命令:git initgit add .git commit -m "Initial commit"git remote add origin http://your_remote_git_server/sample.gitgit pull --rebase origin mastergit push origin master转载自 http...

2019-02-16 21:33:36 434

原创 【PHP】关键字 static 的应用

软件环境php 版本: 5.6.31操作系统:win7 x64案例代码定义静态变量$arr = [8, 4, 2, 1];foreach ($arr as $value) { static $res = []; $res[] = $value;}print_r($res);运行结果:E:\www\test&gt;php static.phpArray(...

2018-12-07 14:11:07 247

翻译 【微服务】protocol buffer 编码机制

编码机制消息示例Base 128 Varints消息结构其他数据类型嵌入式的消息Optional And Repeated Elements字段顺序这篇文档介绍了 protocol buffer 消息的二进制传输格式。理解与否不影响对 protocol buffer 的使用,但是对于了解消息编码后的不同类型数据的大小区别会很有帮助。消息示例假设我们已经定义好了下面的消息:...

2018-11-07 09:17:08 461

原创 【Python】TF-IDF 比较文本相似度

文本相似度TF-IDF 算法如果某个词在给定文档中很少出现,但是在给定文档中的某一篇文章中出现的次数很大, 该词在很大程度上反映了该文章的特性,我们称该词为这篇文章的关键字 参考链接:http://www.ruanyifeng.com/blog/2013/03/tf-idf.html余弦相似性参考链接:http://www.ruanyifeng.com/blog/201...

2018-09-12 17:29:48 4712

原创 【Java】策略模式

模式思想约定一些接口定义策略类实现这些接口定义一个策略切换类让其能切换调用不同的策略类代码实现接口类 Strategy.javapackage strategy;public interface Strategy { int doOperation(int num1, int num2);}策略类OperationAdd.java...

2018-08-31 09:13:10 232

原创 【Java】单例模式

模式思想对一个类只实例化一次,并为这个实例提供一个全局的访问点代码实现定义单例类(Singleton.java)饿汉式单例模式package singleton;public class Singleton { // 自身的一个实例,在类装载的时候就实例化 private static Singleton instance = new Si...

2018-08-23 17:52:09 162

原创 【Java】抽象工厂模式

模式思想约定不同实体类的行为接口定义实现接口的实体类定义抽象工厂类用于获取具体工厂生产类定义继承自抽象工厂类的具体工厂类定义一个工厂创造器/生成器类用来获取具体工厂调用创造器/生成器类用于生产代码实现约定接口Color.javapackage abstractfactory;public interface Color { void ...

2018-08-23 13:51:10 230

原创 【Java】工厂模式

模式思想约定一个接口定义实现接口的实体类定义用来获取实体类的工厂类调用工厂类代码实现约定接口Shape.javapackage factory;public interface Shape { void draw();}实现接口的实体类Circle.javapackage factory;public cla...

2018-08-23 11:41:29 144

原创 【linux】VirtualBox CentOS7 NAT+Host-Only 网络配置

摘要宿主机为 win7 64 位系统,虚拟机为 VitualBox 下的 CentOS 7 系统。本文通过配置虚拟机以网络地址转换(NAT) + Host-Only 网络连接方式实现和外部互联网及宿主机所在网段主机的通信,其中网络地址转换(NAT)网络连接方式是为了确保虚拟机可以连接到外部互联网,Host-Only网络连接方式是为了确保虚拟机可以和宿主机所在网段主机通信。关于宿主机宿...

2018-05-17 23:19:36 4126 1

原创 【MySQL】函数提取字符串中的数字

实现:用 MySQL(5.7) 函数提取形如 “http://www.xxx.com/hotel/detail/826457” 中的数字部分思路:① 把字符串 str0 反转得到 str1② - str1(字符型转整型) 得到 str2③ - str2 得 str3,反转 str3 得到 str4④ 考虑到 str0 中会含有 ^.*[1-9]+0{n}$ 格式的数...

2018-04-16 22:40:34 13992 2

空空如也

空空如也

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

TA关注的人

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