- 博客(46)
- 收藏
- 关注
原创 CentOS 上安装 Nginx
CentOS 默认的软件仓库中没有最新版本的 Nginx,需要先添加官方的 Nginx 仓库。这些步骤将帮助你在 CentOS 上成功安装和运行 Nginx。是否还有其他需要帮助的地方?打开浏览器并访问服务器的 IP 地址。如果看到 Nginx 欢迎页面,说明安装成功。默认情况下,我们使用稳定版本。如果需要安装主线版本,可以在安装命令中启用。
2024-07-29 16:15:17
381
原创 Centos的YUM源
修改配置文件,替换为上述内容之一。将阿里云的配置粘贴进去,保存并退出编辑器。这样就可以使用新的 YUM 源了。文件,将上述内容添加到文件中。使用这些源的方法通常是修改。文件,或者新建一个新的。
2024-07-28 15:18:02
802
原创 Windows 10 安装 WSL、安装 Go 以及配置环境变量的详细教程
以上步骤涵盖了从安装 WSL、设置 Ubuntu 环境、安装 Go 到配置环境变量的整个过程,包括将 Ubuntu 设置为默认的 WSL 发行版。这样,你就可以在 Windows 10 上使用 WSL 和 Go 进行开发了。
2024-07-25 15:21:43
880
原创 麒麟V10 安装docker
报错:Unsupported distribution ‘kylin’查看docker版本,出现版本即安装成功。第三步 启动docker。
2023-06-25 13:40:34
3321
原创 PB文件定义为int64,HTTP返回为string的问题
从协议缓冲区生成 JSON 编码的输出时,如果 protobuf 字段具有默认值并且该字段不支持字段存在,则默认情况下它将从输出中省略。实现可以提供选项以在输出中包含具有默认值的字段。设置了值且支持字段存在的字段始终在 JSON 编码输出中包含字段值,即使它是默认值。当将 JSON 编码的数据解析到协议缓冲区中时,如果缺少一个值或者它的值为null,它将被解释为相应的 默认值。Proto3 支持 JSON 中的规范编码,从而更容易在系统之间共享数据。编码在下表中按类型逐个描述。
2023-05-10 17:04:21
1185
原创 Mysql性能优化之配置I/O行为
将日志缓冲区写入日志文件和将日志刷新到持久存储之间的区别很重要。在大多数操作系统中,将缓冲区写入日志只是将数据从InnoDB的内存缓冲区移动到操作系统的缓存中,依然还是在内存中。因此,如果发生奔溃或断电,设置为0和2通常会导致最多1秒的数据丢失。改参数控制Mysql如何将二进制日志刷新到磁盘,默认值是1,意味着Mysql将执行刷新并保持二进制日志的持久性和安全性。强烈推荐将其设置为1,不建议设置为其他值,如果不将sync_binlog设置为1,发生奔溃可能会导致二进制日志与事务数据不同步。
2023-03-20 13:46:27
508
原创 Go 切片内存优化(摘录)
切片持有对底层数组的引用。只要切片在内存中,数组就不能被垃圾回收。在内存管理方面,这是需要注意的。让我们假设我们有一个非常大的数组,我们只想处理它的一小部分。然后,我们由这个数组创建一个切片,并开始处理切片。这里需要重点注意的是,在切片引用时数组仍然存在内存中。一种解决方法是使用 copy 函数 func copy(dst,src[]T)int 来生成一个切片的副本。这样我们可以使用新的切片,原始数组可以被垃圾回收。package mainimport ( "fmt")func cou
2021-10-21 17:20:31
160
原创 Go从切片中删除元素
a := []int{1, 2, 3, ...}a = append(a[:0], a[1:]...) // 删除开头1个元素a = append(a[:0], a[N:]...) // 删除开头N个元素a = append(a[:i], a[i+1:]...) // 删除中间1个元素a = append(a[:i], a[i+N:]...) // 删除中间N个元素
2021-10-14 11:23:50
281
原创 PHP设计模式之装饰器模式
我们先看一个列子,很简单,添加一个商品信息,并且输出商品信息/** * 商品 */class Goods{ // 定义商品列表 public $goodList; public function __construct() { $this->goodList = []; } // 添加商品信息 public function addGood($good) { $this->goo
2021-09-05 14:31:04
264
原创 PHP 获取字符串中最长不重复的子串和最长连续子串
有时候面试会问到的一道题目,当然问法可能不一样,最长的连续子串,也是同样的逻辑<?php$string = "cbacmcdaefaeadkqatlmtx";// 获取字符串场地$len = strlen($string);// 最长字符串$maxArr = [];// 临时最长不重复字符串$temArr = [];$index = 0;while ($index < $len) { $char = $string[$index]; $index ++
2021-06-09 23:01:34
537
转载 高性能,高扩展,高可用架构
原文链接:https://www.zhihu.com/question/421237964/answer/1795200233如何理解高并发?高并发系统设计的目标是什么?高并发的实践方案有哪些?01 如何理解高并发?高并发意味着大流量,需要运用技术手段抵抗流量的冲击,这些手段好比操作流量,能让流量更平稳地被系统所处理,带给用户更好的体验。我们常见的高并发场景有:淘宝的双11、春运时的抢票、微博大V的热点新闻等。除了这些典型事情,每秒几十万请求的秒杀系统、每天千万级的订单系统、每天亿级日活的信息
2021-06-08 17:47:57
1376
1
原创 Go 读写,复制文件
package mainimport ( "bufio" "fmt" "io" "os")func main() { // 打开一个文件 file, err := os.Open("./test.txt") if err != nil { fmt.Println("open file failed err=", err) } // 关闭文件 defer file.Close() // 创建一个缓存 reader := bufio.NewReader(file) f
2021-06-06 17:04:45
145
原创 Go Sprintf 和 Printf 区别
Go学习中,基础一点一点积累先来看一眼官方文档func Printf// Printf根据format参数生成格式化的字符串并写入标准输出。返回写入的字节数和遇到的任何错误。func Printf(format string, a ...interface{}) (n int, err error)func Sprintf//Sprintf根据format参数生成格式化的字符串并返回该字符串。func Sprintf(format string, a ...interface{}) stri
2021-06-02 17:49:46
3754
原创 Go 学习笔记,编译报错:mixture of field:value and value initializers
初学Go执行时,抛出一个错误,排查问题,觉得很有意思,记录一下,不得不说Go设计者的强一致性package modeltype Goods struct { Name string Price float64}type Book struct { Goods Author string}package mainimport ( "code/model" "fmt")func main() { var book = model.Book{ model.Goo
2021-05-31 11:03:19
1145
原创 Centos下docker安装kibana
安装完ES,肯定就要安装kibana了,拉去官方最新镜像文件docker pull kibana:7.12.1添加配置文件kibana.ymlserver.name: kibanaserver.host: "0.0.0.0"elasticsearch.hosts: ["http://172.17.0.6:9200"]xpack.monitoring.ui.container.elasticsearch.enabled: true查看docker的ipdocker inspect elas
2021-05-22 22:03:50
167
原创 Centos使用Docker安装elasticsearch
查看官网最新版本7.12.1 ,下载镜像文件docker pull elasticsearch:7.12.1创建es文件夹,es下再创建三个目录conf、data、plugins,准备做数据挂载为es文件夹添加777权限(不添加启动时会报错)chmod -R 777 esconf文件夹中添加配置文件elasticsearch.ymlcluster.name: "docker-cluster"network.host: 0.0.0.0http.port: 9200node.name: n
2021-05-22 13:47:25
289
原创 Centos下安装Supervisord进程管理工具
yum 直接安装yum -y updateyum install -y supervisor添加到开机自启systemctl enable supervisord启动supervisordsystemctl start supervisord // 启动supervisordsystemctl status supervisord // 查看状态vim /etc/supervisord.conf修改配置文件,去掉注释port改成自己的ip,user和password随便重新载入配
2021-05-10 22:29:45
166
原创 Go 生成一个随机数
package mainimport ( "fmt" "math/rand" "time")func main() { // 设置一个种子 rand.Seed(time.Now().UnixNano()) // Intn返回一个取值范围在[0,n)的伪随机int值 num := rand.Intn(100) + 1 // 随机1-100 fmt.Println(num)}
2021-05-09 17:55:45
361
原创 Swoole加速laravel框架
下载swool包wget https://pecl.php.net/get/swoole-4.6.6.tgz复制文件到docker文件中,如果没有使用容器则跳过这一步直接安装,注意目录文件地址docker cp swoole-4.6.6 php:/usr/src/php/ext/swoole进入容器内安装swooledocker-php-ext-install swoole安装完毕后查看php --ri swoole在 Laravel 应用中使用 Swoole 之前,先通过 Comp
2021-05-08 01:16:30
260
原创 Linux下部署laravel环境
下载composer.pharcurl -sS https://getcomposer.org/installer | php移动 composer.phar,这样 composer 就可以进行全局调用mv composer.phar /usr/local/bin/composer切换为国内镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/更新 composercompose
2021-05-07 23:37:12
265
原创 Redis命令INCRBY和INCR区别
官方描述:INCRBYINCRBY key increment为键 key 储存的数字值加上增量 increment 。如果键 key 不存在, 那么键 key 的值会先被初始化为 0 , 然后再执行 INCRBY 命令。如果键 key 储存的值不能被解释为数字, 那么 INCRBY 命令将返回一个错误。INCRINCR key为键 key 储存的数字值加上一。如果键 key 不存在, 那么它的值会先被初始化为 0 , 然后再执行 INCR 命令。如果键 key 储存的值不能被解释
2021-05-07 01:23:17
3235
原创 Docker搭建PHP开发环境
直接拉去官方nginx镜像(Dockerfile创建镜像太慢了)docker pull nginx新建nginx的配置文件,准备做映射/docker/nginx/default.confserver { listen 80; listen [::]:80; server_name localhost; root /docker/www/lmrs/public; index index.php index.html; location
2021-05-05 15:59:12
442
原创 进制转换
二进制转十进制每个位的数字乘以 2的(位数-1)次方1001 = 1222 + 022 + 02 + 1 = 8+0+0+1 = 9八进制转十进制每个位的数字乘以 8的(位数-1)次方0153 = 0888+188+58+3 = 64+40+3 = 107十六进制转十进制每个位的数字乘以 16的(位数-1)次方0x14A = 11616 + 4*16 + 10 = 256+64+10 = 330十进制转二进制十进制数字除以2,直到商为0,得到的余数倒过来87/2 = 143/2
2021-05-03 22:01:26
2113
1
原创 Go1.16 mod导入包
Go语言到1.16已经开启了使用mod管理包GO111MODULE配置标识是否使用mod管理包文件GO111MODULE = no // 开启,off 关闭 auto检测是否有mod文件,有即使用mod项目目录执行go mod init生成go.mod文件我的目录结构,mod文件中gocode就是当前目录名(生成时可以自己设置)hero.go文件的包在main.go 中这样导入包即可注意:包名一定要写正确 ,否则会报这么一个错误,package gocode/mode is not i
2021-05-02 01:20:21
719
原创 Golang语言中的单引号、双引号、反引号
双引号:""Golang语音双引号表示一个字符串(Go语言的字符串是一个用UTF-8编码的变宽字符序列,它的每一个字符都用一个或多个字节表示 ,所以说Go语言不存在乱码问题),双引号内字符可以转义,比如:\n,\r反引号:``反引号引起来的字符串就不支持转义,一些正则表达式,HTML,MySql语句都可以用反引号来表示单引号:’'一般只能用来包裹一个字节的ASCII码字符,比如:var a int = '中'...
2021-05-01 14:42:24
975
原创 PHP设计模式之单列模式
单列模式,分懒汉式和恶汉式,但是由于php语法问题,php不支持恶汉式单列三私一公私有静态属性,储存生成的唯一对象私有构造函数,防止外部直接new对象私有克隆函数,防止克隆对象公共静态方法,用来访问静态属性储存的对象,如果没有对象,则生成此单例<?php/** * 单利模式(懒汉式) * Class Db * Version : 1.0 * Created on: 2021/4/23 17:33 */class Db{ // 保存对象 private
2021-04-23 17:35:48
117
原创 PHP位运算
运算符名称结果&And(按位与)将把 $a 和 $b 中都为 1 的位设为 1|Or(按位或)将把 $a 和 $b 中任何一个为 1 的位设为 1^Xor(按位异或)将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1~Not(按位取反)将 $a 中为 0 的位设为 1,反之亦然<<AShift left(左移)将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)>>Shift ...
2021-04-23 17:02:23
139
原创 PHP-FPM中master和worker进程
敲黑板 最近看了很多文章说是php-fpm中的master进程负责分发请求到woker,这是一个错误的说法哈,master进程不负责分发进程,只负责监控管理woker查看我当前的php-fpm进程kill掉一个woker进程,理应是少一个worker进程的,但是查看到还是5个worker进程,说明我们的master进程帮我们又启动一个worker进程再次kill掉master主进程,如果说是master起到分发请求的作用,那么我现在访问页面应该报错的!但是还是能访问到的,所以说master不负责分
2021-04-19 23:46:06
417
原创 centos7防火墙导致nginx无法访问
centos7在默认情况下是开启防火墙功能的,在我们安装nginx后是无法访问的,需要我们关闭防火墙systemctl stop firewalld.service # 关闭防火墙systemctl restart firewalld.service # 启动防火墙如果不想关系防火墙,而又能访问我们的服务,就需要对外开发nginx的端口,默认:80,然后重启防火墙即可firewall-cmd --zone=public --add-port=80/tcp --permanent #该命令需要在防
2021-04-18 00:46:40
2449
原创 浅谈HTTP、TCP、UDP
HTTP、TCP、UDP最近学习网络协议,对http、tcp、udp有了一些粗浅的认识,记录一下官方答案:HTTP 协议是Hyper Text Transfer Protocol(超文本传输协议)TCP 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议UDP 用户数据报协议(UDP,User Datagram Protocol),无连接举个生动列子(也是网上千篇一律的例子):你想给你心爱的女朋友电话,假如他叫
2021-04-13 16:47:01
287
原创 PHP 使用静态变量缓存
static静态变量缓存日常开发中,经常使用到缓存来减少数据库的压力,如redis缓存等等方案,其实使用static静态变量,来当作是我们数据的一级缓存也是我们常常使用的一种方案。使用场景: 在一次请求中,某个数据被多次不同的方法来使用,而你不想多次读redis或者db来增加你的消耗,又不想把他当做参数传来传去,这个时候static就是非常好的解决方案。 /** * 获取章节ids * @param $audioId * @return array|mixed
2021-04-12 14:50:47
392
原创 PHP设计模式之观察者模式
观察者模式<?php/** * 订单观察者 * Interface OrderObserver */interface OrderObserver{ /** * 每个观察者需要执行的方法 * @param $object * @return mixed */ public function afterOrderSave($object);}/** * 被观察者 * Interface OrderObservable */
2021-04-09 18:11:13
100
原创 Linux Log文件常用命令
笔记:Log文件常用命令tailtail -f xxx.log 显示最新出现的logtail -f xxx.log | grep ‘xxx’ 显示最新出现的带有检索词的logtail -f -n 5 xxx.log | grep ‘xxx’ 显示最后出现检索词的5条log,并且后续持续显示headhead -n 5 xxx.log 显示头部5条日志catcat -n xxx.log | grep ‘xxx’ 显示检索词的行号sedsed -n ‘/2021-04-07 11:26:2
2021-04-07 11:30:55
813
原创 Redis 淘汰策略
Redis 淘汰策略策略说明volatile-lru根据 LRU 算法从设置了过期时间的Key中驱逐最久没有使用的Key(推荐)allkeys-lru根据 LRU 算法从所有Key中驱逐最久没有使用的Keyvolatile-lfu根据 LFU 算法从所有设置了过期时间的Key中驱逐使用频率最少的Keyallkeys-lfu根据 LFU 算法从所有Key中驱逐使用频率最少的Keyvolatile-random从设置了过期时间的键空间中,随机驱逐某个Key
2021-04-03 23:47:28
57
原创 PHP获取图片无法识别
PHP获取图片无法识别一次项目中抓取网页图片保存到本地,抓取到的图片无法识别,几经周转发现是图片经过是压缩处理,更换其他方式获取即可public function getCoverBase($imgflag) { if (empty($imgflag)) { return ''; } $strImg = @file_get_contents("compress.zlib://" . $imgflag); //加上图片头信息 $fileBase =
2020-07-02 17:18:01
251
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人