上一节日志配置好以后,会一直写入信息到/tmp/access.log里面,假如日志不去整理,总有一天会把硬盘塞满,所以我们需要做日志切割,每天生成一个新的日志,把旧的超过多少天的日志删除,我们需要去写个Nginx的日志切割脚本。(把Nginx所有脚本放在这个目录下)[root@LampLinux ~...
Apache可以配置防盗链,Nginx也可以配置防盗链,依据是referer,编辑虚拟主机配置文件:[root@LampLinux ~]# vim /usr/local/nginx/conf/vhosts/test.conf我们之前配置了“指定图片不记录日志”的配置,我们防止盗用那些图片,以及mp3...
MongoDB 是一种持久化的面向文档的数据库,用于以文档的形式存储和处理数据。与其他的数据库管理系统一样,MongoDB 可以通过四种基本类型的数据操作来管理数据并与数据交互:C:创建操作,涉及将数据写入数据库R:读取操作,查询数据库以从中检索数据U:更新操作,更改数据库中已存在的数据D:删除操作...
数组排序冒泡算法:冒泡排序类似气泡上涌的动作,会将数据在数组中从小到大或者从大1到小不断的向前移动基本思想:冒泡排序的基本思想就是对比相邻的两个元素值。如果满足条件就交换元素值。把较小的元素移动到数组前面,把大的元素移动到数组后面。(也就是交换两个元素的位置),这样较小的元素就像气泡一样从底部上升到...
Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。JDK 1.8 和之前的版本略有不同,下面会介绍到区别就是 1.8有一个元数据区替代方法区了。由于 PermGen 内存经常会溢出,引发恼人的 java.lang.OutOfMemoryError: PermG...
概念“导航”表示路由正在发生变化vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。有多种机会植入路由导航过程 中:全局的, 单个路由独享的, 或者组件级的。导航守卫:包括全局导航守卫和局部导航守卫全局守卫vue-router全局有三个守卫router.beforeEach :...
什么是 TCP 粘包粘包问题是指当发送两条消息时,比如发送了 ABC 和 DEF,但另一端接收到的却是 ABCD,像这种一次性读取了两条数据的情况就叫做粘包(正常情况应该是一条一条读取的), 正确读取 ABC 和 DEF 两条信息。当发送的消息是 ABC 时,另一端却接收到的是 AB 和 C 两条信...
场景如下:我在服务器上安装了docker环境,服务器上除了回环网卡外只有一块网卡,网段为10.69.16.0/24,安装完docker后docker0的网段为172.17.0.0/16,后面我将/etc/docker/daemon.json改为{ "bip": "192.168.0.1/24"...
1.单词directory 目录file 文件make 新建remove 删除(缩写rm)move 移动(缩写mv)copy 复制(缩写cp)list 罗列(缩写ls)link 链接find 查找echo 重复;发出回声touch 触摸2.概念a.没有盘符,整个硬盘(即根目录)是/b.文件;目录(即...
给一个两个数组,其中一个数组是 A [1,2,3,4],另外一个数组是 B [5,6,7,8]。让你求两个数组合并后的大数组的:最大值最小值总和这题是不是很简单?我们直接可以很轻松地在 $O(m+n)$ 的时间解决,其中 m 和 n 分别为数组 A 和 B 的大小。那如果我可以修改 A 和 B 的某...
1. 所有 worker 进程的 listenfd 会在新连接到来时变得可读 ,为保证只有一个进程处理该连接,所有 worker 进程在注册 listenfd 读事件前抢占 accept_mutex ,抢到互斥锁的那个进程注册 listenfd 读事件 ,在读事件里调用 accept 接受该连接。...
分布式锁的实现有挺多细节要注意。1. 要设置过期时间,避免释放锁的时候失败了,锁长期得不到释放导致的死锁问题2. 要设置锁的拥有者请求一拿到锁,开始执行业务,业务执行时长超过锁设置的过期时间时,锁过期了,假设这个时候请求二拿到锁,刚开始执行业务,请求一业务执行完成,开始释放锁。因为没有设置锁的拥有者...
postgreSQL 编译安装操作系统:centos 7数据库版本:pgsql13.3新增postgres用户组[root@localhost ~]#groupadd postgres 新增postgres用户并加入postgres组[root@localhost ~]#useradd postgr...
nodejs简介:Node.js 是一个开源与跨平台的 JavaScript 运行时环境。 JavaScript程序可以运行在浏览器中 JavaScript程序可以运行在Node.js环境中 Node.js在浏览器外运行的。 安装Vue脚手架需要先安装Node.js (安装好了的不要随意卸载Node...
1、计数器可以对 String 进行自增自减运算,从而实现计数器功能。Redis 这种内存型数据库的读写性能非常高,很适合存储频繁读写的计数量。2、缓存将热点数据放到内存中,设置内存的最大使用量以及淘汰策略来保证缓存的命中率。3、会话缓存可以使用 Redis 来统一存储多台应用服务器的会话信息。当应...
Java字符串的十大问题,你遇到过几个?以下是有关Java字符串的十大常见问题。1.如何比较字符串?使用"=="还是使用equals()?简而言之,"=="测试引用是否相等,而equals()测试值是否相等。除非要检查两个字符串是否是同一对象,否则应始终使用equals()。2.为什么对于安全敏感信...
一、字符串格式单行:str_a = "this is a str" 多行str_b =""" 这是一段字符串我是谁""" # 格式:# 单行name = "了自己"print(name, type(name))name2 = "张" \ "l"print(name2)# 多行str_a...
1、使用pandas操作excel表格 (1)读取指定单元格# 导入pandas库,简写为pdimport pandas as pd# 读取表格,使用openpyxl引擎,获取表名为表1的内容df = pd.read_excel("test.xlsx", engine="openpyx...
为什么需要分布式锁用户下单锁住 uid,防止重复下单。库存扣减锁住库存,防止超卖。余额扣减锁住账户,防止并发操作。分布式系统中共享同一个资源时往往需要分布式锁来保证变更资源一致性。分布式锁需要具备特性排他性锁的基本特性,并且只能被第一个持有者持有。防死锁高并发场景下临界资源一旦发生死锁非常难以排查,...
1 避免使用select *很多时候,我们写sql语句时,为了方便,喜欢直接使用select *,一次性查出表中所有列的数据。反例:select * from user where id=1;在实际业务场景中,可能我们真正需要使用的只有其中一两列。查了很多数据,但是不用,白白浪费了数据库资源,比如...