个人图床解决方案
个人图床解决方案原先我的解决方案是github做图床,套一层Cloudflare的cdn来加速国内访问, 但国内访问仍然过慢, 特别是一些图很多的文章, 加载非常慢. 所以我想着改善一下, 在对比了一些解决方案之后, 我选择了PicGo+缤纷云搭建主图床, 部分图片放在 去不图床, 原先的方案作为备用方案. 我用去不图床存储常用固定图片, 像背景图这些, 单图10G的流量, PicGo+缤纷云存储文章内插图, 每月10G免费流量, 虽然去不图床和缤纷云都不是像阿里云, 腾讯云这样的大厂, 如果它们跑路的话, 我的备用方案可以立马顶上, 两分钟之内就可以做到替换完成, 所以说还是没有太大隐患 缤纷云注册并实名之后就会拥有每月赠送的30G流量 创建桶 防盗链配置 添加子用户 Access Key和 Secret Key要记好,等会配置PicGo的时候要用到 picGo下载picGo, 可以去看官方文档, 写得很详细, 我是从山东大学镜像下载的 由于缤纷云不是PicGo官方支持的云服务厂商, 所以得靠插件来实现, 由于支持s3 api, 所以我选择了Amazon s3插件 配置 应用秘钥ID ...
网站性能检测与优化
网站性能检测与优化性能检测LighthouseLighthouse 是一个网站性能测评工具, 它是 Google Chrome 推出的一个开源自动化工具,能够对 PWA 和网页多方面的效果指标进行评测,并给出最佳实践的建议以帮助开发者改进网站的质量。它的使用方法也非常简单,我们只需要提供一个要测评的网址,它将针对此页面运行一系列的测试,然后生成一个有关页面性能的报告。通过报告我们就可以知道需要采取哪些措施来改进应用的性能和体验。 在高版本(应该是 >= 60)的 Chrome 浏览器中,Lighthouse 已经直接集成到了调试工具 DevTools 中了,因此不需要进行任何安装或下载。按 F12 打开开发者工具,可以看到在 console、security 等选项后面有一个 Lighthouse (低版本的谷歌浏览器可能显示的是 Audits)选项,选择该选项,然后点击 Analyse page load 即可。 使用 Lighthouse 对网站进行测评后,我们会得到一份评分报告,它包含了性能(Performance),访问无障碍(Accessibility),最佳实践(B ...
Redis线程模型
Redis线程模型和IO多路复用Redis是单线程的吗?redis6.0后,全面支持多线程。redis单线程指的是 接收请求、解析请求、进行数据读写操作、返回数据给客户端这个过程是由一个线程来完成的以及Redis的网络IO是由一个线程来完成的。所以我们称redis为单线程。 但是redis服务在启动的时候,会启动后台线程,常见的有两个 后台刷盘线程:当我们配置AOF策略为everysec时,每隔一秒,由后台线程完成刷盘操作 后台释放内存线程:redis 提供unlink命令,异步释放内存,特别是大key 之所以有后台线程,只为了不让主线程去执行这些操作,避免阻塞主线程,无法响应请求。 Redis为什么采用单线程?Redis 的大部分操作都在内存中完成,并且采用了高效的数据结构,因此 Redis 瓶颈可能是机器的内存或者网络带宽,而并非 CPU,所以 Redis 核心网络模型使用单线程并没有什么问题,而且单线程避免了多线程之间并发竞争问题,省去了多线程切换带来的时间和性能上的开销,也不会导致死锁问题。 Redis 6.0引入多线程后,会产生并发安全问题吗?不会,引入的多线程只是针对网 ...
Redis持久化(AOF|RDB)
Redis持久化(AOF|RDB)AOFAOF是什么?AOF全称是append only file, 即只追加文件。 AOF持久化是通过保存Redis服务器执行的写命令来记录数据库状态的。 AOF默认是不开启的,,需要在redis.conf文件中配置: 12appendonly yesappendfilename "appendonly.aof" AOF持久化配置项说明: appendonly:是否开启AOF持久化 appendfilename:持久化文件名 redis处理写命令的时,会采取先写内存数据,再记录AOF日志的方式,这样做有两个好处: 减少额外检查开销: 只有内存数据被修改成功后才会写AOF日志,保证了日志都是可执行且正确的 不会阻塞当前的写操作 风险 如果命令执行完成,写日志之前宕机了,会丢失数据。 可能会阻塞下一条写命令的执行: 写操作和记录日志都是主进程(主进程中的redis_aof_write_thread线程),如果在刷盘时,服务器I/O压力过大,导致写硬盘速度很慢,就会阻塞后续的写命令 写AOF日志的过程redis在执行完一个写命令之 ...
IELTS备考经验(个人向)
IELTS备考经验(个人向)备考时长约1个月,首考6.5(6), 虽然没考到小分6.5, 我也接受了, 过段时间再考吧. 机考or纸笔雅思有机考也有传统的纸笔考试形式, 个人更推荐机考, 原因如下: 机考口语和笔试一般都在同一天, 而纸笔的口语和笔试一般不在同一天, 有时候可能会差一个星期, 如果考点离你住的地方比较远的话, 非常不方便, 像我这种学校在郊区的(西北某电专), 果断选择机考 机考的考位多, 考试时间灵活, 纸笔一般一个星期只有两场, 而机考几乎每天都有两场 机考对于那些写字不好看的人来说很友好, 而且打字比较快, 还有时间去检查和调整 机考对于阅读也比较友好, 不用翻来翻去的 当然机考也有一些缺点: 听力时间会更短, 对于我来说就是读题时间会减少, 而且我考的那场感觉耳机很烂, 漏音比较严重, 如果是比较容易受环境影响的同学, 可能会比较吃亏, 我考出来就比平时自己限时练低了0.5分 总的来说, 对于时间比较充裕, 写字比较好看的同学(或者打字特别慢), 我还是挺建议纸笔的, 其他同学我都建议去考机考 关于难度可以看到, 网上有很多人在散播焦虑(特指小某书), 说什 ...
现代密码学基础技能
现代密码学基础技能大数据安全与隐私这门课的lab1,要求如下图: 实现思路:• 通过Socket实现文件传输,使用TCP协议确保数据传输的可靠性。• 代码通过读取文件的二进制数据进行传输,支持任意类型的文件。• 通过AES加密算法进行文件数据的加密和解密。• 使用RSA加密算法对AES密钥进行加密,确保密钥的安全传输。• 通过在AES密钥中加入时间戳的方式,确保每次生成不同的密钥,从而保证相同文件每次发送的加密结果不同。 具体实现:客户端 (client.py) 连接服务器o 创建Socket并连接到服务器的指定端口。 AES密钥生成与加密o 生成16字节的随机AES密钥。o 加入时间戳生成唯一的AES密钥。o 使用RSA公钥加密AES密钥并发送给服务器。 文件传输o 读取文件信息(文件名和大小),发送给服务器。o 分块读取文件数据,使用AES进行加密,发送加密数据到服务器。服务端 (server.py) 监听客户端连接o 创建Socket,绑定指定端口,并设置监听队列。 接收并解密AES密钥o 生成RS ...