友链朋友圈

免费HTTPS证书部署

前言 由于腾讯云限制了免费证书的使用个数,而我之前因为免费就随意了很多,现在,一个正在使用的证书过期了,没法继续使用,这样就导致了在浏览器中不能一步到位的打开网站 网站介绍 使用的是FreeSSL.cn网站,该网站提供免费的HTTPS证书申请,下面是网站首页 安装acme.sh 我们需要先在服务器上安装acme.sh,建议使用root用户安装 curl https://get.acme.sh | sh -s email=my@example.com ACME 域名配置 在首页中输入想要申请证书的域名,点击后面的按钮 点击下一步 根据内容,去你的域名管理处添加信息,添加后回来点击按钮 出现下面的页面,可以先直接点击完成 部署证书 acme.sh 部署命令,这个就是上面图中的内容 acme.sh --issue -d blog.huangge1199.cn --dns dns_dp --server [专属 ACME 地址] 生成证书,注意生成证书的路径根据自己的情况修改 acme.sh --install-cert -d blog.huangge1199.cn \--key-file /www/server/panel/vhost/cert/blog.huangge1199.cn/key.pem \--fullchain-file /www/server/panel/vhost/cert/blog.huangge1199.cn/cert.pem \--reloadcmd "service nginx reload" 修改nginx配置文件,添加如下的内容,证书文件的路径和名字同生成证书的路径与名字一致 ssl_certificate /www/server/panel/vhost/cert/blog.huangge1199.cn/cert.pem...

avatar 龙儿之家 发表于 2023年02月07日 15:15:03

一个对象在JVM中经历了什么?

这个标题让我想起来一个哲学问题:从哪里来,到哪里去。 那我们就通过这个哲学问题谈一谈:一个对象在JVM中经历了什么? 从哪里来? 我:对象从哪里来? 同事甲:呃,国家发的? 同事乙:充话费送的? 咳咳,我说的是JVM的对象 对于我们程序员来说,没有对象?不存在的!我直接创建一个! 所以这个问题很简单:对象都是创建出来的。 但是这个问题也很难:对象是怎么创建出来的? 这就像咱都知道咱都是咱妈生的,但咱是怎么……? 那我们就先来探讨一下咱是怎么……? 对象是怎么创建出来的? 对象创建流程 想要创建对象,首先得找到它的类元信息,所以创建对象的第一步,就是类加载检查。 类加载检查 虚拟机遇到一条加载类指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 有没有一种字都认识,连在一起就不晓得啥意思的感觉? 没关系,我会出手 什么是加载类指令 常见的加载类指令有: new关键字 Class.forName() 初始化子类,父类未初始化时,先初始化父类 虚拟器启动,初始化main()方法的类 加载类指令的参数就是指new User()的User 什么是符号引用? 简单来说,符号引用就是字面量,比如User就是一个符号引用。 详细来说,符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用时能无歧义地定位到目标即可。 现在再来看类加载的解释,就是当虚拟机遇到new User()时,首先会检查能否在常量池中定位到User, 并且检查User这个类是否被类加载过。 如果没有,那必须先执行相应的类加载过程,那么类加载过程是怎么样的? 我们先假设类已经加载过了 类加载检查通过之后,下一步就得给对象买房分配内存了。 如果没有通过自然会发生ClassNotFoun...

avatar 阿紫的博客网站 发表于 2023年01月30日 16:13:55

群晖包管理工具 synopkg


avatar nukix的工具箱 发表于 2023年01月28日 04:01:19

群晖(docker图形化界面)使用 SpeedTest 测速

本文主要介绍在群晖中安装 speedtest 进行网络测速。

avatar nukix的工具箱 发表于 2023年01月28日 03:03:24

群晖(docker图形化界面)使用 SpeedTest 测速

本文主要介绍在群晖中安装 speedtest 进行网络测速。 博主博客 https://blog.uso6.com https://blog.csdn.net/dxk539687357 一、安装 docker 在套件中心搜索并且安装 docker。 二、下载容器

avatar nukix的工具箱 发表于 2023年01月28日 03:03:00

MySQL事务隔离级别

概述 索引是MySQL的数据结构,关系着MySQL如何存储数据,查询数据;而如何操作数据,解决多线程时操作数据带来的问题,则需要通过事务来完成。 InnoDB引擎支持事务,MyISAM引擎不支持事务 ACID 事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性 原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。 一致性(Consistent) :在事务开始和完成时,数据都必须保持一致状态。 隔离性(Isolation):数据库系统提供一定的隔离机制,保证事务在不受外部并发操作影响的“独立”环境执行。 持久性(Durable):事务完成之后,它对于数据的修改是永久性的。 用大白话说: 原子性:事务里的所有操作,要么是commit全部提交成功,要么是rollback全部回滚。 一致性:个人认为更多在于业务操作,如A用户向B用户转账100,必须是A-100, B+100,不能出现A转账成功,B未收到情况。 隔离性:A事务在操作数据时,不受B事务影响。这点会在本文详细说明。 持久性:对数据的所有成功操作,都会落到磁盘上。 事务隔离级别 InnoDB中,一共有四种隔离级别:读未提交、读已提交、可重复读、可串行化。默认为可重复读。 它们分别会对应一些并发问题,如表格所示: 隔离级别 脏读 不可重复读 幻读 读未提交 有可能 有可能 有可能 读已提交 不可能 有可能 有可能 可重复度 不可能 不可能 有可能 可串行化 不可能 不可能 不可能 脏读:事务A读取到了事务B已经修改但尚未提交的数据,还在这个数据基础上做了操作。此时,如果B事务回滚,A读取的数据无效。 不可重复读:一个事务在读取某些数据后的某个时间,再次读取以前读过的数据,却发现其读出的数据已经发生了改变、或某些记录已经被删除了。 幻读:...

avatar 阿紫的博客网站 发表于 2023年01月25日 20:06:16

随笔 三

一段时间没有更新了,最近也有在好好生活哦。

avatar 宇生の后花园 发表于 2023年01月25日 00:29:55

MySQL索引优化三

这篇文章继续讨论剩下的内容,同样,请一定要先看MySQL索引优化一 分页查询 在平常,我们写的分页查询sql一般是这样 explain select * from employees order by name limit 10000,10; 这样的sql你会发现越翻到后面查询会越慢,这是因为这里看似是从表中查询10条记录,实际上是在表中查询了10010条记录,然后将10000条记录丢弃所得到的结果。 优化sql如下: explain select * from employees t1 join (select id from employees order by `name` limit 10000, 10) t2 on t1.id = t2.id; 执行计划: 优化思路:先使用覆盖索引方式查出10条数据,再使用这10条数据连接查询。 覆盖索引:查询的字段被索引完全覆盖,比如id在联合索引中 原理:结合MySQL数据结构, 主键索引(innodb引擎)会存储完整的记录,而二级索引只存储主键。MySQL一个结点默认为16KB。 故:二级索引一个叶子结点能够存放的记录会多的多,扫描二级索引比扫描主键索引的IO次数会少很多。 图示: 优化前sql查询时间 set global query_cache_size=0; set global query_cache_type=0; 优化后: Join查询 jion查询分为内连接,左连接,右连接; 关联时又有两种情况:使用索引字段关联,不使用索引字段关联。 我以案例举例说明,如以下两张表t1,t2, a字段有索引,b字段无索引 CREATE TABLE `t1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `a` int(11) DEFAULT NULL, `b` int(11) DEFAU...

avatar 阿紫的博客网站 发表于 2023年01月22日 21:54:46

Ubuntu 安装 g++ 和 CMake

博主博客 https://blog.uso6.com https://blog.csdn.net/dxk539687357 由于编写 C/C++ 多数依赖于编译器, 反而忽略了使用命令行进行编译, 因此在这记录使用 g++ 和 CMake 进行编译打包的步骤。 g++ 是 GNU 开发的 C++ 编

avatar nukix的工具箱 发表于 2023年01月22日 04:36:00

MySQL索引优化二

前言 这篇文章继续讨论索引优化,如果没有看过上篇文章MySQL索引优化一一定看了再看这篇。 你别问我:阿紫,那你怎么不写到一篇文章里呀? 好吧,其实没有什么特别的理由,单纯是累了,想休息休息接着写。 好了继续继续。 这篇文章的主要内容:讨论一下OrderBy、Join、In、Exist相关的原理。 OrderBy order by是怎么使用索引的? order by同样遵循最左前缀法则,只有当order by的字段是最左字段或者跟随where条件的字段时,才能使用索引排序 排序排序,关键就在于:有序 如以下联合索引:name_age_position name字段是天然有序的,name值相同时,age是有序的,age相同时,position是有序的。 那应该怎么判断sql使用了索引排序呢? 如以下sql explain select id from employees order by name; Extra列: Using index:使用覆盖索引 Using filesort:将用文件排序而不是索引排序,数据较小时从内存排序,否则需要在磁盘完成排序。 只要没有Extra列出现use filesort,那么就是用的索引排序 再看看使用文件排序的sql explain select id from employees order by age; 注意,使用了索引是使用了索引,文件排序是文件排序,这是两码事。 比如你使用了索引进行查找数据,但是查找出的数据是用的文件排序。 接下来看看一些案例 sql1 explain select * from employees where name = 'zhangsan18' order by age,position; 索引排序,age跟在name字段后,position跟在age字段后 sql2 explain select * f...

avatar 阿紫的博客网站 发表于 2023年01月21日 22:48:18