获得徽章 1
#青训营笔记创作活动#
1月11日 打卡 Day36
MySQL基础操作命令
net start mysql:Windows系统启动MySQL服务。
安装目录/mysql start:Linux系统启动MySQL服务。
shutdown:后面的start换成这个,表示关闭MySQL服务。
restart:换成restart表示重启MySQL服务。
ps -ef | grep mysql:Linux查看MySQL后台进程的命令。
kill -9 MySQL进程ID:强杀MySQL服务的命令。
mysql -h地址 -p端口 -u账号 -p:客户端连接MySQL服务(需要二次输入密码)。
show status;:查看MySQL运行状态。
SHOW VARIABLES like %xxx%;:查看指定的系统变量。
show processlist;:查看当前库中正在运行的所有客户端连接/工作线程。
show status like "Threads%";:查看当前数据库的工作线程系统。
help data types;:查看当前版本MySQL支持的所有数据类型。
help xxx:查看MySQL的帮助信息。
quit:退出当前数据库连接
1月11日 打卡 Day36
MySQL基础操作命令
net start mysql:Windows系统启动MySQL服务。
安装目录/mysql start:Linux系统启动MySQL服务。
shutdown:后面的start换成这个,表示关闭MySQL服务。
restart:换成restart表示重启MySQL服务。
ps -ef | grep mysql:Linux查看MySQL后台进程的命令。
kill -9 MySQL进程ID:强杀MySQL服务的命令。
mysql -h地址 -p端口 -u账号 -p:客户端连接MySQL服务(需要二次输入密码)。
show status;:查看MySQL运行状态。
SHOW VARIABLES like %xxx%;:查看指定的系统变量。
show processlist;:查看当前库中正在运行的所有客户端连接/工作线程。
show status like "Threads%";:查看当前数据库的工作线程系统。
help data types;:查看当前版本MySQL支持的所有数据类型。
help xxx:查看MySQL的帮助信息。
quit:退出当前数据库连接
展开
评论
点赞
#青训营笔记创作活动#
1月10日 打卡 Day35
Bytebase是一款面向开发者的数据库变更管理工具,目前在Github上已有3.6K+Star。
它的主要特性如下:
SQL审核:具有一站式SQL审核面板,可以直观地看到数据库所有变更记录。
SQL建议:能自动检查SQL语句规范,额外提供GitHub Action和API接入方式。
SQL编辑器:可以在线管理及查看数据库表,支持语法的自动提示。
GitOps工作流:支持集成GitHub和GitLab,使用GitOps工作流进行数据库变更。
备份恢复:支持自动备份数据库及恢复数据
1月10日 打卡 Day35
Bytebase是一款面向开发者的数据库变更管理工具,目前在Github上已有3.6K+Star。
它的主要特性如下:
SQL审核:具有一站式SQL审核面板,可以直观地看到数据库所有变更记录。
SQL建议:能自动检查SQL语句规范,额外提供GitHub Action和API接入方式。
SQL编辑器:可以在线管理及查看数据库表,支持语法的自动提示。
GitOps工作流:支持集成GitHub和GitLab,使用GitOps工作流进行数据库变更。
备份恢复:支持自动备份数据库及恢复数据
展开
评论
点赞
#青训营笔记创作活动#
1月9日 打卡 Day34
什么样的数据适合放入缓存?
精简为四字就是:读多写少
访问量很大,需要使用缓存来承担一部分压力(读多、写少)
即时性要求高,能承受一定时间内的数据不一致性。
较长时间不会改变的数据,如后台管理的菜单列表,商品分类列表等等。
使用缓存后会产生什么样的问题?
缓存与数据库双写不一致
缓存雪崩、缓存穿透
缓存并发竞争
1月9日 打卡 Day34
什么样的数据适合放入缓存?
精简为四字就是:读多写少
访问量很大,需要使用缓存来承担一部分压力(读多、写少)
即时性要求高,能承受一定时间内的数据不一致性。
较长时间不会改变的数据,如后台管理的菜单列表,商品分类列表等等。
使用缓存后会产生什么样的问题?
缓存与数据库双写不一致
缓存雪崩、缓存穿透
缓存并发竞争
展开
评论
点赞
#青训营笔记创作活动#
1月8日 打卡 Day33
网络的边界:个人区域网、局域网、城域网、广域网、互联网
个人区域网(PAN)
个人区域网PAN(Personal Area Network),顾名思义可以是个人使用区域范围内的电脑等设备,用无线连接起来的网络。所以范围相对很小。
局域网(LAN)
局域网LAN(Local Area Network),在地理上局限的范围,如1km左右。但可以将多个互连的局域网,来覆盖校园或者企业中。所以局域网也被称为校园网或企业网。
城域网(MAN)
城域网MAN(Metropolitan Area Network),城域网的作用范围可跨越几个街区甚至整个城市,距离约也可以为5到50km,所以一般也是一个城市。
广域网(WAN)
广域网WAN(Wide Area Network)范围通常为几十到几千公里,可以通过长距离运送主机所发送的数据,所以可以跨越不同国家,也是互联网的核心部分。
互联网
当你蓦然回首,把许多计算机连接在一起形成了计算机网络,而把许多网络连接在一起就构成了互联网;一个覆盖范围更大的计算机网络,覆盖范围可以是全球。
1月8日 打卡 Day33
网络的边界:个人区域网、局域网、城域网、广域网、互联网
个人区域网(PAN)
个人区域网PAN(Personal Area Network),顾名思义可以是个人使用区域范围内的电脑等设备,用无线连接起来的网络。所以范围相对很小。
局域网(LAN)
局域网LAN(Local Area Network),在地理上局限的范围,如1km左右。但可以将多个互连的局域网,来覆盖校园或者企业中。所以局域网也被称为校园网或企业网。
城域网(MAN)
城域网MAN(Metropolitan Area Network),城域网的作用范围可跨越几个街区甚至整个城市,距离约也可以为5到50km,所以一般也是一个城市。
广域网(WAN)
广域网WAN(Wide Area Network)范围通常为几十到几千公里,可以通过长距离运送主机所发送的数据,所以可以跨越不同国家,也是互联网的核心部分。
互联网
当你蓦然回首,把许多计算机连接在一起形成了计算机网络,而把许多网络连接在一起就构成了互联网;一个覆盖范围更大的计算机网络,覆盖范围可以是全球。
展开
评论
点赞
赞了这篇文章
#青训营笔记创作活动#
1月7日 打卡 Day32
Monorepo 其实不是一个新的概念,在软件工程领域,它已经有着十多年的历史了。概念上很好理解,就是把多个项目放在一个仓库里面,相对立的是传统的 MultiRepo 模式,即每个项目对应一个单独的仓库来分散管理。
1月7日 打卡 Day32
Monorepo 其实不是一个新的概念,在软件工程领域,它已经有着十多年的历史了。概念上很好理解,就是把多个项目放在一个仓库里面,相对立的是传统的 MultiRepo 模式,即每个项目对应一个单独的仓库来分散管理。
展开
评论
点赞
#青训营笔记创作活动#
1月6日打卡 Day31
开发人员在项目中使用了基于接口维度的短期缓存,对每个接口的请求参数(帖子ID)与响应内容缓存一定的时间(比如1分钟),对于相同的请求,如果匹配到缓存则直接返回缓存的结果即可,不用再次去执行查询数据库以及业务维度的运算逻辑。
1月6日打卡 Day31
开发人员在项目中使用了基于接口维度的短期缓存,对每个接口的请求参数(帖子ID)与响应内容缓存一定的时间(比如1分钟),对于相同的请求,如果匹配到缓存则直接返回缓存的结果即可,不用再次去执行查询数据库以及业务维度的运算逻辑。
展开
评论
点赞
#青训营笔记创作活动#
1月5日 打卡Day30
今天主要介绍一些常见配置,分为了 7 大类:
描述配置
文件配置
脚本配置
依赖配置
发布配置
系统配置
第三方配置
1月5日 打卡Day30
今天主要介绍一些常见配置,分为了 7 大类:
描述配置
文件配置
脚本配置
依赖配置
发布配置
系统配置
第三方配置
展开
评论
2
#青训营笔记创作活动#
1月4日 打卡 Day29
vue不能用index作为key
当用index作为key时,因为diff算法会就地更新,会复用key:0的这个节点,比对的时候,key:0的节点存在,则比对key:1,也存在,而多出了key:2,则会将其删除。
1月4日 打卡 Day29
vue不能用index作为key
当用index作为key时,因为diff算法会就地更新,会复用key:0的这个节点,比对的时候,key:0的节点存在,则比对key:1,也存在,而多出了key:2,则会将其删除。
展开
评论
点赞
#青训营笔记创作活动#
1月3日 打卡 Day28
你是否主动关闭过http连接,为啥要这样做
有关闭,不关闭会程序可能会消耗完 socket 描述符。有如下2种关闭方式:
直接设置请求变量的 Close 字段值为 true,每次请求结束后就会主动关闭连接。设置 Header 请求头部选项 Connection: close,然后服务器返回的响应头部也会有这个选项,此时 HTTP 标准库会主动断开连接
1月3日 打卡 Day28
你是否主动关闭过http连接,为啥要这样做
有关闭,不关闭会程序可能会消耗完 socket 描述符。有如下2种关闭方式:
直接设置请求变量的 Close 字段值为 true,每次请求结束后就会主动关闭连接。设置 Header 请求头部选项 Connection: close,然后服务器返回的响应头部也会有这个选项,此时 HTTP 标准库会主动断开连接
展开
评论
点赞
#青训营笔记创作活动#
1月2日 打卡 Day27
redis数据结构类型
基本数据类型:
String(字符串)
Hash(哈希)
List(列表)
Set(集合)
ZSet(Sorted Set 有序集合)
高级数据类型:
HyperLogLog:用来做基数统计的算法,在输入元素的数量或体积非常大时,计算基数所需的空间总是固定的,并且是很小的。HyperLogLog 只会根据输入元素来计算基数,而不会存储输入元素本身
Geo:用来地理位置的存储和计算
BitMap:实际上不是特殊的存储结构,本质上是二进制字符串,可以进行位操作,常用于统计日活跃用户等
1月2日 打卡 Day27
redis数据结构类型
基本数据类型:
String(字符串)
Hash(哈希)
List(列表)
Set(集合)
ZSet(Sorted Set 有序集合)
高级数据类型:
HyperLogLog:用来做基数统计的算法,在输入元素的数量或体积非常大时,计算基数所需的空间总是固定的,并且是很小的。HyperLogLog 只会根据输入元素来计算基数,而不会存储输入元素本身
Geo:用来地理位置的存储和计算
BitMap:实际上不是特殊的存储结构,本质上是二进制字符串,可以进行位操作,常用于统计日活跃用户等
展开
评论
点赞
#青训营笔记创作活动#
1月1日 打卡 Day26
这种瞬时高并发的场景,传统的系统很难应对,我们需要设计一套全新的系统。可以从以下几个方面入手:
页面静态化
CDN加速
缓存
mq异步处理
限流
分布式锁
1月1日 打卡 Day26
这种瞬时高并发的场景,传统的系统很难应对,我们需要设计一套全新的系统。可以从以下几个方面入手:
页面静态化
CDN加速
缓存
mq异步处理
限流
分布式锁
展开
评论
点赞
#青训营笔记创作活动#
12月31日 打卡 Day25
redis和memcache
Memcache 也是一个开源、高性能、分布式内存对象缓存系统。所有数据均存储在内存中,在服务器重启之后就会消失,需要重新加载数据,采用 hash 表的方式将所有数据缓存在内存中,采用 LRU 算法来逐渐把过期的数据清除掉。
数据类型:Memcache 仅支持字符串类型,Redis 支持 5 种不同的数据类型
数据持久化:Memcache 不支持持久化,Redis 支持两种持久化策略,RDB 快照 和 AOF 日志
分布式:Memcache 不支持分布式,只能在客户端使用一致性哈希的方式来实现分布式存储,Redis3.0 之后可在服务端构建分布式存储,Redis集群没有中心节点,各个节点地位平等,具有线性可伸缩的功能。
内存管理机制:Memcache数据量不能超出系统内存,但可以调整内存大小,淘汰策略采用LRU算法。Redis增加了 VM 特性,实现了物理内存的限制,它们之间底层实现方式以及客户端之间通信的应用协议不一样。
数据大小限制:Memcache 单个 key-value 大小有限制,一个Value最大容量为 1MB,Redis 最大容量为512 MB
12月31日 打卡 Day25
redis和memcache
Memcache 也是一个开源、高性能、分布式内存对象缓存系统。所有数据均存储在内存中,在服务器重启之后就会消失,需要重新加载数据,采用 hash 表的方式将所有数据缓存在内存中,采用 LRU 算法来逐渐把过期的数据清除掉。
数据类型:Memcache 仅支持字符串类型,Redis 支持 5 种不同的数据类型
数据持久化:Memcache 不支持持久化,Redis 支持两种持久化策略,RDB 快照 和 AOF 日志
分布式:Memcache 不支持分布式,只能在客户端使用一致性哈希的方式来实现分布式存储,Redis3.0 之后可在服务端构建分布式存储,Redis集群没有中心节点,各个节点地位平等,具有线性可伸缩的功能。
内存管理机制:Memcache数据量不能超出系统内存,但可以调整内存大小,淘汰策略采用LRU算法。Redis增加了 VM 特性,实现了物理内存的限制,它们之间底层实现方式以及客户端之间通信的应用协议不一样。
数据大小限制:Memcache 单个 key-value 大小有限制,一个Value最大容量为 1MB,Redis 最大容量为512 MB
展开
评论
点赞
#青训营笔记创作活动#
12月30日 打卡 Day24
redis优缺点总结
优点:
完全基于内存操作,性能极高,读写速度快,Redis 能够支持超过 100KB/s 的读写速率
支持高并发,支持10万级别的并发读写
支持主从模式,支持读写分离与分布式
具有丰富的数据类型与丰富的特性(发布订阅模式)
支持持久化操作,不会丢失数据
缺点:
数据库容量受到物理内存的限制,不能实现海量数据的高性能读写
相比关系型数据库,不支持复杂逻辑查询,且存储结构相对简单
虽然提供持久化能力,但实际更多是一个 disk-backed 功能,与传统意义上的持久化有所区别
12月30日 打卡 Day24
redis优缺点总结
优点:
完全基于内存操作,性能极高,读写速度快,Redis 能够支持超过 100KB/s 的读写速率
支持高并发,支持10万级别的并发读写
支持主从模式,支持读写分离与分布式
具有丰富的数据类型与丰富的特性(发布订阅模式)
支持持久化操作,不会丢失数据
缺点:
数据库容量受到物理内存的限制,不能实现海量数据的高性能读写
相比关系型数据库,不支持复杂逻辑查询,且存储结构相对简单
虽然提供持久化能力,但实际更多是一个 disk-backed 功能,与传统意义上的持久化有所区别
展开
评论
点赞
#青训营笔记创作活动#
12月29日 打卡 Day23
在 Spring Boot 中跨域问题有很多种解决方案,比如以下 5 个:
使用 @CrossOrigin 注解实现跨域;
通过配置文件实现跨域;
通过 CorsFilter 对象实现跨域;
通过 Response 对象实现跨域;
通过实现 ResponseBodyAdvice 实现跨域。
当然如果你愿意的话,还可以使用过滤器来实现跨域,但它的实现和第 5 种实现类似,所以本文就不赘述了
12月29日 打卡 Day23
在 Spring Boot 中跨域问题有很多种解决方案,比如以下 5 个:
使用 @CrossOrigin 注解实现跨域;
通过配置文件实现跨域;
通过 CorsFilter 对象实现跨域;
通过 Response 对象实现跨域;
通过实现 ResponseBodyAdvice 实现跨域。
当然如果你愿意的话,还可以使用过滤器来实现跨域,但它的实现和第 5 种实现类似,所以本文就不赘述了
展开
评论
点赞
#青训营笔记创作活动#
12月28日 打卡 Day22
实现思路:
1)利用 iframe 创建沙箱,取出其中的原生浏览器全局对象作为沙箱的全局对象
2)设置一个黑名单,若访问黑名单中的变量,则直接报错,实现阻止\隔离的效果
3)在黑名单中添加 document 字段,来实现禁止开发者操作 DOM
4)在黑名单中添加 XMLHttpRequest、fetch、WebSocket 字段,实现禁用原生的方式调用接口
5)若访问当前全局对象中不存在的变量,则直接报错,实现禁用三方库调接口
6)最后还要拦截对 window 对象的访问,防止通过 window.document 来操作 DOM,避免沙箱逃逸
12月28日 打卡 Day22
实现思路:
1)利用 iframe 创建沙箱,取出其中的原生浏览器全局对象作为沙箱的全局对象
2)设置一个黑名单,若访问黑名单中的变量,则直接报错,实现阻止\隔离的效果
3)在黑名单中添加 document 字段,来实现禁止开发者操作 DOM
4)在黑名单中添加 XMLHttpRequest、fetch、WebSocket 字段,实现禁用原生的方式调用接口
5)若访问当前全局对象中不存在的变量,则直接报错,实现禁用三方库调接口
6)最后还要拦截对 window 对象的访问,防止通过 window.document 来操作 DOM,避免沙箱逃逸
展开
评论
1
#青训营笔记创作活动#
12月27日 打卡 Day21
跨域问题指的是不同站点之间,使用 ajax 无法相互调用的问题。跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。
12月27日 打卡 Day21
跨域问题指的是不同站点之间,使用 ajax 无法相互调用的问题。跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。
评论
点赞
#青训营笔记创作活动#
12月26日 打卡 Day20
502其实是由网关代理(nginx)发出的,是因为网关代理把客户端的请求转发给了服务端,但服务端却发出了无效响应,而这里的无效响应,一般是指TCP的RST报文或四次挥手的FIN报文。
12月26日 打卡 Day20
502其实是由网关代理(nginx)发出的,是因为网关代理把客户端的请求转发给了服务端,但服务端却发出了无效响应,而这里的无效响应,一般是指TCP的RST报文或四次挥手的FIN报文。
评论
点赞
#青训营笔记创作活动#
12月25日 打开 Day19
对于接口方法的注释,应该包含详细的入参和结果说明,有异常抛出的情况也要详细叙述类的注释应该包含类的功能说明、作者和修改者。
如果是业务逻辑很复杂的代码,真的非常有必要写清楚注释。
12月25日 打开 Day19
对于接口方法的注释,应该包含详细的入参和结果说明,有异常抛出的情况也要详细叙述类的注释应该包含类的功能说明、作者和修改者。
如果是业务逻辑很复杂的代码,真的非常有必要写清楚注释。
展开
评论
点赞