首页
网站导航
关于
Search
1
解决Typecho Joe主题访问fastly.jsdelivr.net速度慢的方案 | 快速优化技巧
2,252 阅读
2
解决WSL2内存不释放问题的最佳指南
1,529 阅读
3
如何在 Typecho Joe 主题的文章中增加目录
1,186 阅读
4
GO语言环境的搭建教程 - 完全指南
1,042 阅读
5
如何解决Win11电脑桌面上方显示横线问题 | 窗口11教程
1,026 阅读
默认分类
编程语言
GO语言
PHP
Node
javascript
html
rust
java
Css
Python
资源分享
chrome插件
阅读思考
运维架构
redis
Nginx
linux
memcached
mongodb
mysql
windows
docker
k8s
Mq
apache
CI
Git
swoole
elk
系统设计
thinkPhp
beego
登录
Search
标签搜索
重要
go基础
git 命令
go包
phpstorm
sublime
thinkphp6
mysql问题
软件分享
redis命令
php基础
thinkphp3.2
php第三扩展包
小蚯蚓博客
累计撰写
335
篇文章
累计收到
48
条评论
首页
栏目
默认分类
编程语言
GO语言
PHP
Node
javascript
html
rust
java
Css
Python
资源分享
chrome插件
阅读思考
运维架构
redis
Nginx
linux
memcached
mongodb
mysql
windows
docker
k8s
Mq
apache
CI
Git
swoole
elk
系统设计
thinkPhp
beego
页面
网站导航
关于
搜索到
129
篇与
的结果
2024-01-20
MySQL Interval 用法详解 | MySQL 时间区间使用指南
interval 作为函数时 当 interval 作为一个函数时,它被当做一个比较函数,即 interval (),如 interval (4,0,1,2,3,4,5,6),则在函数中,第一个数 4 作为被比较数,后面的 0,1,2,3,4,5,6 为比较数,然后将后面的数字依次与 4 进行比较,返回小于等于 4 的个数,所以上述结果为 5,注意,只有将 4 后面的数字从小到大进行排列,interval 函数才能正常使用,若排序混乱,可以使用,但会影响最终结果。 interval 作为关键字时 当 interval 作为一个关键字时,表示为时间间隔,常用在 date_add ()、date_sub ()函数中,常用于时间的加减法。 时间的加法 使用 date_add 函数时 mysql> select date_add('2020-07-20', interval +1 day); +-----------------------------------------+ | date_add('2020-07-20', interval +1 day) | +-----------------------------------------+ | 2020-07-21 | +-----------------------------------------+ 1 row in set (0.01 sec) mysql> select date_add('2020-07-20', interval +1 hour); +------------------------------------------+ | date_add('2020-07-20', interval +1 hour) | +------------------------------------------+ | 2020-07-20 01:00:00 | +------------------------------------------+ 1 row in set (0.00 sec) mysql> select date_add('2020-07-20', interval +1 minute); +--------------------------------------------+ | date_add('2020-07-20', interval +1 minute) | +--------------------------------------------+ | 2020-07-20 00:01:00 | +--------------------------------------------+ 1 row in set (0.00 sec) 使用 DATE 关键字时,需要确定时间的粒度大小,再进行具体时刻的选取,可供选择的时间粒度如下 MICROSECOND SECOND MINUTE HOUR DAY WEEK MONTH QUARTER YEAR SECOND_MICROSECOND MINUTE_MICROSECOND MINUTE_SECOND HOUR_MICROSECOND HOUR_SECOND HOUR_MINUTE DAY_MICROSECOND DAY_SECOND DAY_MINUTE DAY_HOUR YEAR_MONTH 使用如下 mysql> select DATE '2020-07-20' + interval '1 31' hour_second; +-------------------------------------------------+ | DATE '2020-07-20' + interval '1 31' hour_second | +-------------------------------------------------+ | 2020-07-20 00:01:31 | +-------------------------------------------------+ 1 row in set (0.00 sec) mysql> select DATE '2020-07-20' + interval '2' microsecond; +----------------------------------------------+ | DATE '2020-07-20' + interval '2' microsecond | +----------------------------------------------+ | 2020-07-20 00:00:00.000002 | +----------------------------------------------+ 1 row in set (0.00 sec) 时间的减法 与时间的加法使用方式一致,将 + 号换成 - 号就可以 mysql> select date_add('2020-07-20', interval -1 day); +-----------------------------------------+ | date_add('2020-07-20', interval -1 day) | +-----------------------------------------+ | 2020-07-19 | +-----------------------------------------+ 1 row in set (0.00 sec) mysql> select date_add('2020-07-20', interval -1 hour); +------------------------------------------+ | date_add('2020-07-20', interval -1 hour) | +------------------------------------------+ | 2020-07-19 23:00:00 | +------------------------------------------+ 1 row in set (0.00 sec) mysql> select date_add('2020-07-20', interval -1 minute); +--------------------------------------------+ | date_add('2020-07-20', interval -1 minute) | +--------------------------------------------+ | 2020-07-19 23:59:00 | +--------------------------------------------+ 1 row in set (0.00 sec) ----------------- mysql> select DATE '2020-07-20' - interval '1 31' hour_second; +-------------------------------------------------+ | DATE '2020-07-20' - interval '1 31' hour_second | +-------------------------------------------------+ | 2020-07-19 23:58:29 | +-------------------------------------------------+ 1 row in set (0.00 sec) mysql> select DATE '2020-07-20' - interval '2' microsecond; +----------------------------------------------+ | DATE '2020-07-20' - interval '2' microsecond | +----------------------------------------------+ | 2020-07-19 23:59:59.999998 | +----------------------------------------------+ 1 row in set (0.00 sec)
2024年01月20日
109 阅读
0 评论
0 点赞
2023-12-30
Docker安装教程 | 最详细的步骤图解
简介 Docker CE是免费的Docker产品的新名称,Docker CE包含了完整的Docker平台,非常适合开发人员和运维团队构建容器APP。 下载地址:https://mirrors.aliyun.com/docker-ce/?spm=a2c6h.13651104.d-5001.7.30fe3317A5jrOv 本教材是copy阿里云官网的安装教程:https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.3e221b11Vnzr56 配置方法 Ubuntu 14.04/16.04(使用 apt-get 进行安装) # step 1: 安装必要的一些系统工具 sudo apt-get update sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common # step 2: 安装GPG证书 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - # Step 3: 写入软件源信息 sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" # Step 4: 更新并安装Docker-CE sudo apt-get -y update sudo apt-get -y install docker-ce # 安装指定版本的Docker-CE: # Step 1: 查找Docker-CE的版本: # apt-cache madison docker-ce # docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages # docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages # Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-0~ubuntu-xenial) # sudo apt-get -y install docker-ce=[VERSION] CentOS 7(使用 yum 进行安装) # step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加软件源信息 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 可以看下源是否添加成功了 yum list|grep docker-ce # Step 3 sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo # Step 4: 更新并安装Docker-CE sudo yum makecache fast sudo yum -y install docker-ce # Step 4: 开启Docker服务 sudo service docker start # 注意: # 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。 # vim /etc/yum.repos.d/docker-ce.repo # 将[docker-ce-test]下方的enabled=0修改为enabled=1 # # 安装指定版本的Docker-CE: # Step 1: 查找Docker-CE的版本: # yum list docker-ce.x86_64 --showduplicates | sort -r # Loading mirror speeds from cached hostfile # Loaded plugins: branch, fastestmirror, langpacks # docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable # docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable # docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable # Available Packages # Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos) # sudo yum -y install docker-ce-[VERSION] 安装校验 注意,输出必须有Client和Server的信息,如果只有Client的话,就会有问题。 root@iZbp12adskpuoxodbkqzjfZ:$ docker version Client: Version: 17.03.0-ce API version: 1.26 Go version: go1.7.5 Git commit: 3a232c8 Built: Tue Feb 28 07:52:04 2017 OS/Arch: linux/amd64 Server: Version: 17.03.0-ce API version: 1.26 (minimum version 1.12) Go version: go1.7.5 Git commit: 3a232c8 Built: Tue Feb 28 07:52:04 2017 OS/Arch: linux/amd64 Experimental: false 配置容器镜像地址 默认的镜像地址在国外,类似npm的仓库地址在国外,速度很慢,需要改到国内,这里使用阿里云的:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 需要注意的是,每个人账号的地址是不一样的。 相关链接 官方主页:https://www.docker.com/community-edition
2023年12月30日
168 阅读
0 评论
0 点赞
2023-12-30
Swoole进程池及其通信详解 | Swoole教程
pool方式启动 https://wiki.swoole.com/#/process/process_pool // 启动2个进程,通过socket方式进行通信,true启动协程 $pool = new Swoole\Process\Pool(2, SWOOLE_IPC_UNIXSOCK,0,true); $pool->on('workerStart',function (Swoole\Process\Pool $pool,int $workerId){ var_dump($workerId); $process = $pool->getProcess(0);// 获取workerId为0的进程 $socket = $process->exportSocket();//获取workerId为0的进程的socket if ($workerId == 0) { var_dump('000'); echo $socket->recv();// 阻塞在这里 $socket->send("hello proc1\n"); echo "proc0 stop\n"; } else { var_dump('111'); // \n作为数据的分隔符,表示结束 $socket->send("hello proc0\n"); echo $socket->recv();// 阻塞在这里 echo "proc1 stop\n"; $pool->shutdown(); } }); $pool->start(); 执行后,将会输出 int(0) int(1) string(3) "string(3) "000" 111" hello proc0 proc0 stop hello proc1 proc1 stop Manage方式启动
2023年12月30日
116 阅读
0 评论
0 点赞
2023-12-15
如何在MySQL中同时搜索多个字段 - 专业指南
MySQL如何同时搜索多个字段? MySQL是一种开源的关系型数据库管理系统,广泛应用于各种数据存储场景。在实际使用中,我们经常需要对多个字段进行搜索,以找到符合条件的数据。本文将介绍如何在MySQL中同时搜索多个字段。 使用OR操作符 OR操作符用于连接多个条件,只要其中一个条件成立,就返回结果。在搜索多个字段时,我们可以使用OR操作符将多个字段连接起来,如下所示: ame WHERE field1 LIKE '%keyword%' OR field2 LIKE '%keyword%'; ame表中搜索field1和field2两个字段,如果它们中任何一个包含关键词keyword, 使用CONCAT函数 CONCAT函数可以将多个字段连接成一个字符串,从而实现同时搜索多个字段的目的。例如: ame WHERE CONCAT(field1, field2) LIKE '%keyword%'; ame表中将field1和field2两个字段连接成一个字符串,然后在这个字符串中搜索关键词keyword,如果找到匹配项, 使用UNION操作符 UNION操作符可以将多个SELECT语句的结果合并在一起。在搜索多个字段时,我们可以使用UNION操作符将多个SELECT语句的结果合并,如下所示: ameame WHERE field2 LIKE '%keyword%'); ame表中分别搜索field1和field2两个字段,然后将它们的结果合并在一起,去除重复项后返回相应的结果。 使用全文索引 MySQL提供了全文索引功能,可以对指定的字段建立索引,从而实现更高效的搜索。在使用全文索引时,我们可以通过MATCH AGAINST语句进行搜索,如下所示: ame WHERE MATCH (field1, field2) AGAINST ('keyword'); ame表中搜索field1和field2两个字段,使用全文索引进行匹配,如果找到匹配项, 搜索多个字段是 MySQL 中常见的操作之一。本文介绍了四种方法:使用 OR 操作符、使用 CONCAT 函数、使用 UNION 操作符和使用全文索引。在实际应用中,我们可以根据具体情况选择合适的方法,以实现更高效的搜索。
2023年12月15日
130 阅读
1 评论
0 点赞
2023-11-26
Linux CentOS 环境变量配置的 6 种方法 - 详细示例和步骤
Linux 环境变量配置 在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法。 下面所有例子的环境说明如下: 系统:Ubuntu 14.0 用户名:uusama 需要配置MySQL环境变量路径:/home/uusama/mysql/bin Linux读取环境变量 读取环境变量的方法: export命令显示当前系统定义的所有环境变量 echo $PATH命令输出当前的PATH环境变量的值 这两个命令执行的效果如下 uusama@ubuntu:~export declare -x HOME="/home/uusama" declare -x LANG="en_US.UTF-8" declare -x LANGUAGE="en_US:" declare -x LESSCLOSE="/usr/bin/lesspipe %s %s" declare -x LESSOPEN="| /usr/bin/lesspipe %s" declare -x LOGNAME="uusama" declare -x MAIL="/var/mail/uusama" declare -x PATH="/home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" declare -x SSH_TTY="/dev/pts/0" declare -x TERM="xterm" declare -x USER="uusama" uusama@ubuntu:~ echo $PATH /home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 其中PATH变量定义了运行命令的查找路径,以冒号:分割不同的路径,使用export定义的时候可加双引号也可不加。 方法一:export PATH 使用export命令直接修改PATH的值,配置MySQL进入环境变量的方法: export PATH=/home/uusama/mysql/bin:PATH # 或者把PATH放在前面 export PATH=PATH:/home/uusama/mysql/bin 注意事项: 生效时间:立即生效 生效期限:当前终端有效,窗口关闭后无效 生效范围:仅对当前用户有效 配置的环境变量中不要忘了加上原来的配置,即$PATH部分,避免覆盖原来配置 方法二:vim ~/.bashrc 通过修改用户目录下的~/.bashrc文件进行配置: vim ~/.bashrc # 在最后一行加上 export PATH=$PATH:/home/uusama/mysql/bin 注意事项: 生效时间:使用相同的用户打开新的终端时生效,或者手动source ~/.bashrc生效 生效期限:永久有效 生效范围:仅对当前用户有效 如果有后续的环境变量加载文件覆盖了PATH定义,则可能不生效 方法三:vim ~/.bash_profile 和修改~/.bashrc文件类似,也是要在文件最后加上新的路径即可: vim ~/.bash_profile # 在最后一行加上 export PATH=$PATH:/home/uusama/mysql/bin 注意事项: 生效时间:使用相同的用户打开新的终端时生效,或者手动source ~/.bash_profile生效 生效期限:永久有效 生效范围:仅对当前用户有效 如果没有/.bash_profile文件,则可以编辑/.profile文件或者新建一个 方法四:vim /etc/bashrc 该方法是修改系统配置,需要管理员权限(如root)或者对该文件的写入权限: # 如果/etc/bashrc文件不可编辑,需要修改为可编辑 chmod -v u+w /etc/bashrc vim /etc/bashrc # 在最后一行加上 export PATH=$PATH:/home/uusama/mysql/bin 注意事项: 生效时间:新开终端生效,或者手动source /etc/bashrc生效 生效期限:永久有效 生效范围:对所有用户有效 方法五:vim /etc/profile 该方法修改系统配置,需要管理员权限或者对该文件的写入权限,和vim /etc/bashrc类似: # 如果/etc/profile文件不可编辑,需要修改为可编辑 chmod -v u+w /etc/profile vim /etc/profile # 在最后一行加上 export PATH=$PATH:/home/uusama/mysql/bin 注意事项: 生效时间:新开终端生效,或者手动source /etc/profile生效 生效期限:永久有效 生效范围:对所有用户有效 方法六:vim /etc/environment 该方法是修改系统环境配置文件,需要管理员权限或者对该文件的写入权限: # 如果/etc/bashrc文件不可编辑,需要修改为可编辑 chmod -v u+w /etc/environment vim /etc/profile # 在最后一行加上 export PATH=$PATH:/home/uusama/mysql/bin 注意事项: 生效时间:新开终端生效,或者手动source /etc/environment生效 生效期限:永久有效 生效范围:对所有用户有效 Linux环境变量加载原理解析 上面列出了环境变量的各种配置方法,那么Linux是如何加载这些配置的呢?是以什么样的顺序加载的呢? 特定的加载顺序会导致相同名称的环境变量定义被覆盖或者不生效。 环境变量的分类 环境变量可以简单的分成用户自定义的环境变量以及系统级别的环境变量。 用户级别环境变量定义文件:/.bashrc、/.profile(部分系统为:~/.bash_profile) 系统级别环境变量定义文件:/etc/bashrc、/etc/profile(部分系统为:/etc/bash_profile)、/etc/environment 另外在用户环境变量中,系统会首先读取/.bash_profile(或者/.profile)文件,如果没有该文件则读取/.bash_login,根据这些文件中内容再去读取/.bashrc。 测试Linux环境变量加载顺序的方法 为了测试各个不同文件的环境变量加载顺序,我们在每个环境变量定义文件中的第一行都定义相同的环境变量UU_ORDER,该变量的值为本身的值连接上当前文件名称。 需要修改的文件如下: /etc/environment /etc/profile /etc/profile.d/test.sh,新建文件,没有文件夹可略过 /etc/bashrc,或者/etc/bash.bashrc /.bash_profile,或者/.profile ~/.bashrc 在每个文件中的第一行都加上下面这句代码,并相应的把冒号后的内容修改为当前文件的绝对文件名。 export UU_ORDER="$UU_ORDER:~/.bash_profile" 修改完之后保存,新开一个窗口,然后echo $UU_ORDER观察变量的值: uusama@ubuntu:~echoUU_ORDER $UU_ORDER:/etc/environment:/etc/profile:/etc/bash.bashrc:/etc/profile.d/test.sh:~/.profile:~/.bashrc 可以推测出Linux加载环境变量的顺序如下: /etc/environment /etc/profile /etc/bash.bashrc /etc/profile.d/test.sh ~/.profile ~/.bashrc Linux环境变量文件加载详解 由上面的测试可容易得出Linux加载环境变量的顺序如下,: 系统环境变量 -> 用户自定义环境变量 /etc/environment -> /etc/profile -> ~/.profile 打开/etc/profile文件你会发现,该文件的代码中会加载/etc/bash.bashrc文件,然后检查/etc/profile.d/目录下的.sh文件并加载。另外,搜索公众号Linux就该这样学后台回复"Linux",获取一份惊喜礼包。 # /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...). if [ "PS1" ]; then if [ "BASH" ] && [ "BASH" != "/bin/sh" ]; then # The file bash.bashrc already sets the default PS1. # PS1='\h:\w\$ ' if [ -f /etc/bash.bashrc ]; then . /etc/bash.bashrc fi else if [ "`id -u`" -eq 0 ]; then PS1='# ' else PS1=' ' fi fi fi if [ -d /etc/profile.d ]; then for i in /etc/profile.d/*.sh; do if [ -r i ]; then .i fi done unset i fi 其次再打开/.profile文件,会发现该文件中加载了/.bashrc文件。 # if running bash if [ -n "BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "HOME/.bashrc" ]; then . "HOME/.bashrc" fi fi # set PATH so it includes user's private bin directories PATH="HOME/bin:HOME/.local/bin:PATH" 从~/.profile文件中代码不难发现,/.profile文件只在用户登录的时候读取一次,而/.bashrc会在每次运行Shell脚本的时候读取一次。 一些小技巧 可以自定义一个环境变量文件,比如在某个项目下定义uusama.profile,在这个文件中使用export定义一系列变量,然后在~/.profile文件后面加上:sourc uusama.profile,这样你每次登陆都可以在Shell脚本中使用自己定义的一系列变量。 也可以使用 alias 命令定义一些命令的别名,比如 alias rm="rm -i"(双引号必须),并把这个代码加入到~/. profile 中,这样你每次使用 rm 命令的时候,都相当于使用 rm -i 命令,非常方便。
2023年11月26日
79 阅读
0 评论
0 点赞
2023-10-07
专业Nginx HTTPS配置指南 | 如何有效地设置您的Nginx
下载 Nginx 服务证书 确定下文件有没有准备好,一份 SSL 证书、一份对应的私钥 KEY 文件(这里是用的 pem 与 key 文件, https://freessl.cn/ ,这个地方可以免费申请证书)上传到服务器上,编辑 conf 的时候注意你的这俩文件名字,跟跟服务器上的一致。 ssl. pem; ssl. key; 这个有时候后缀是 ssl. pem,没什么关系 把这两个文件复制到对应目录里面。 使用acme自动部署:https://blog.freessl.cn/acme-quick-start/ 先安装证书到本地 然后安装到nginx acme.sh --install-cert -d www.xiaoqiuyinboke.cn \ --key-file /usr/local/nginx/conf/ssl/www_xiaoqiuyinboke_cn_key.pem \ --fullchain-file /usr/local/nginx/conf/ssl/www_xiaoqiuyinboke_cn_cert.pem \ --reloadcmd "/usr/local/nginx/sbin/nginx -s reload" 配置 nginx server { # 监听的端口,nginx 1.15.0及以上版本,使用listen 443 ssl代替,1.15.0以下的使用listen 443 listen 443 ssl; server_name www.xiaoqiuyinboke.cn; #charset koi8-r; # ssl证书地址 # 指定pem文件所在路径,如果写相对路径,必须把该文件和nginx.conf文件放到一个目录下。 ssl_certificate ssl/cert.pem; # 指定私钥文件key所在路径,如果写相对路径,必须把该文件和nginx.conf文件放到一个目录下。 ssl_certificate_key ssl/key.pem; # ssl验证相关配置 # 缓存有效期 ssl_session_timeout 5m; # 加密算法 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; # 安全链接可选的加密协议 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 使用服务器端的首选算法 ssl_prefer_server_ciphers on; #access_log logs/host.access.log main; root /usr/local/wqy/www/typecho/; location / { add_header Access-Control-Allow-Origin *; try_files $uri $uri/ /index.php?$query_string; index index.html index.htm index.php; autoindex on; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ .+\.php($|/) { add_header Access-Control-Allow-Origin *; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; include fastcgi.conf; #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} # include ./conf/vhost/*.conf; } # 配置80端口重定向443端口 server { listen 80; server_name www.xiaoqiuyinboke.cn; rewrite ^(.*)$ https://${server_name}$1 permanent; }
2023年10月07日
159 阅读
0 评论
0 点赞
2023-10-07
Nginx缓存配置专家 | 提高网站性能和速度
nginx 可以设置下缓存,提高响应速度 http { ... # 压缩,效果明显,430kb的被压缩成132kb gzip on; gzip_min_length 1024; gzip_comp_level 4; # 设置缓存空间 gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; server { ... location ~* .(jpg|jpeg|png|gif|ico|css|js)$ { expires 365d; # 和缓存空间配合,这个需要独立的静态ip地址 proxy_pass ip:port; proxy_cache my_cache; proxy_cache_valid 1d; } ... } ... }
2023年10月07日
134 阅读
0 评论
0 点赞
2023-09-26
解决Win11中快捷键不能使用的问题(Shift+F6) 快捷键解决方案
1. 背景 windows11 在某次开机之后,idea 的 shift+F6 快捷键不生效了,很不方便。本来想着凑合着用吧,但是越凑合越不爽!直到今天,一定得搞定这个问题。在网上找了好几种检测热键冲突的软件,在 windows11 上,要么是初始化失败,要么就是不显示热键,包括 PCHunter、WindowsHotkeyExplorer、OpenArk。直到看到贴吧,有兄弟说是 windows 微软输入法的问题,去试了下,果真好使。所以,使用 windows11 的兄嘚们,如果也遇到这个问题,就不要折腾了。 2. 问题描述 windows11 在升级后,idea 中的 shift+F6 不能使用了,感觉是热键冲突了。 3. 问题原因 windows 升级,微软输入法带来的问题。 4. 解决方案 开启兼容性设置
2023年09月26日
210 阅读
0 评论
0 点赞
2023-09-07
MySQL全文索引使用教程
概述 全文索引与普通的索引不是一回事,在查找上方面其效率是普通模糊(like)查询的 N 倍,是 MySQL 专门提供用作搜索引擎的。 Mysql 5.6 之前版本,只有 MyISAM 支持全文索引,5.6 之后,Innodb 和 MyISAM 均支持全文索引,另外,只有字段的数据类型为 char、varchar、text 才可以建全文索引。 5.6 之后 MySQL 自带 ngram 解析器,可以解析中日韩三国文字,如果不使用 ngram 解析器,则 MySQL 默认使用空格与符号作为分隔符(对于英文自然够用了,但对于中日韩文字就不好用了,所以才需要 ngram 解析器) 创建索引 有两种方式: 一种是带有 ngram 解析器,会自动分词 ALTER TABLE news ADD FULLTEXT idx_full_text (`content`) WITH PARSER ngram; 另外一种是不带有 ngram 解析器的,以符号和空格分词 ALTER TABLE news ADD FULLTEXT idx_full_text (`content`); 查询 全文索引有专用的查询语法:match (字段) against (关键字),例如 select * from answer where match(content) against("测试表") 为了更好的搜索效果,通常会配置最小搜索长度。 全文索引的相关参数都无法进行动态修改,必须通过修改 MySQL 的配置文件来完成。 // MyISAM 全文索引的的分词 ft_min_word_len = 4; 默认值 ft_max_word_len = 84; 默认值 // InnoDB 全文索引的的分词 innodb_ft_min_token_size = 3; 默认值 innodb_ft_max_token_size = 84; 默认值 // ngram解析器令牌长度----即against()中字符串切分的最小字符长度,搜索语句的内容如果不是""起来,会被分词 ngram_token_size = 2~10 ; 默认值 通常修改最小搜索长度的值为 2,在 my.ini,的 [mysqld] 的下面追加以下内容: [mysqld] innodb_ft_min_token_size = 2 ft_min_word_len = 2 ngram_token_size = 2 查看变量值 show variables like "%ft%" 三种全文搜索模式 自然语言模式 IN NATURAL LANGUAGE MODE,默认情况下为该模式,例: -- 如果最小搜索长度ngram_token_size为1的话,则查找包含张,或三,或张三的记录;与布尔搜索模式中的‘+张三’结果相同 SELECT * FROM user WHERE MATCH(userName) AGAINST (‘张三’ ); 布尔搜索模式 有以下几个操作符: 【+】----------必须包含此字符串 【-】----------必须不包含此字符串 【""】--------双引号内作为整体不能拆词 【>】--------提高该词的相关性,查询的结果靠前 【<】--------降低该词的相关性,查询的结果靠后 【*】---------通配符,只能接在词后面 例如,查询有"美女"的又有"动人"的记录: SELECT * FROM user WHERE MATCH(userName) AGAINST ('+"美女" & +"动人"' IN BOOLEAN MODE); 查询扩展搜索 较少使用,没有细了解 多字段索引 对 title 和 body 字段建立索引 ALTER TABLE articles ADD FULLTEXT INDEX ft_index (title,body) WITH PARSER ngram; 然后 selec 语句如下使用即可: SELECT id, title, body, MATCH (title,body) AGAINST ('标题' IN NATURAL LANGUAGE MODE) AS score FROM articles where MATCH (title,body) AGAINST ('标题' IN NATURAL LANGUAGE MODE) ORDER BY score DESC; 不过上面这种方式,两个字段的权重是一样,有时候希望不同字段的权重不一样,例如希望你 title 字段权重大一点,这个只需要分别对字段建立索引,然后改下排序方式即可满足,例如: SELECT id, title, body, MATCH (title) AGAINST ('标题' IN NATURAL LANGUAGE MODE) AS score_title, MATCH (body) AGAINST ('标题' IN NATURAL LANGUAGE MODE) AS score_body FROM articles where (MATCH (title) AGAINST ('标题' IN NATURAL LANGUAGE MODE) OR MATCH (body) AGAINST ('标题' IN NATURAL LANGUAGE MODE)) -- 主要是改排序方式 ORDER BY score_title DESC,score_body DESC;
2023年09月07日
320 阅读
0 评论
0 点赞
2023-07-26
如何关闭Windows系统更新 - 完整教程
首先,打开windows服务: 快捷是 win+r,然后输入services.msc后回车 然后找到windows更新服务 双击更新服务后禁用服务 最后操作全部设置成无操作,保存即可
2023年07月26日
215 阅读
0 评论
0 点赞
1
2
3
...
13