个人收藏的一些网址
Tomcat各版本下载:Tomcat各版本(3到9)各平台的包都有
Java知音-一个专注于技术分享的网站:技术分享的网站
Java集合,HashMap底层实现和原理:Java集合,HashMap底层实现和原理(1.7数组+链表与1.8+的数组+链表+红黑树)
Table Convert Online:一个表格工具网站
ECMAScript 6 入门:《ECMAScript 6 入门》是一本开源的 JavaScript 语言教程,全面介绍 ECMAScript 6 新引入的语法特性。
remove:在线抠图网站,去除图片背景
Font Awesome:Hexo样式设置会用到(图标)
表情符号列表:写博客时可以直接拿来用
Git Learning:一个学习 git 的网站
世纪互联:世纪互联唯一登录地址
ZenUML:在线画时序图的神器🎉
PlantUML:在线画类图的神器🎉
谷歌插件下载:无法翻墙,但是又想下载谷歌插件
Git提交时的emoji表情使用指南
关于所有的emoji图标代码,可以参考emojipedia,不过GitHub上有一套约定俗成的emoji使用规范,在使用git提交信息的时候,你不妨尝试使用它们,让你的提交信息更加明晰和生动。
emoji
emoji 代码
commit 说明
🎨 (调色板)
:art:
改进代码结构/代码格式
⚡️ (闪电)🐎 (赛马)
:zap: :racehorse:
提升性能
🔥 (火焰)
:fire:
移除代码或文件
🐛 (bug)
:bug:
修复 bug
🚑 (急救车)
:ambulance:
重要补丁
✨ (火花)
:sparkles:
引入新功能
📝 (备忘录)
:pencil:
撰写文档
🚀 (火箭)
:rocket:
部署功能
💄 (口红)
:lipstick:
更新 UI 和样式文件
🎉 (庆祝)
:tada:
初次提交
✅ (白色复选框)
:white_check_mark:
增加测试
🔒 (锁)
:lock:
修复安全问题
🍎 (苹果)
:apple:
修复 macOS 下的问题
🐧 (企 ...
Redis字符串底层原理
问题
对字符串类型的底层原理有了解过吗?怎么实现的?
SDS字符串和C语言字符串有什么区别?
SDS的空间分配策略有了解吗?
Redis简单动态字符串Redis 没有直接使用 C 语言传统的字符串表示(以空字符结尾的字符数组,以下简称 C 字符串),而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS用作 Redis 的默认字符串表示。
在 Redis 里面, C 字符串只会作为字符串字面量, 用在一些无须对字符串值进行修改的地方, 比如打印日志:
1redisLog(REDIS_WARNING,"Redis is now ready to exit, bye bye...");
当 Redis 需要的不仅仅是一个字符串字面量, 而是一个可以被修改的字符串值时, Redis 就会使用 SDS 来表示字符串值: 比如在 Redis 的数据库里面, 包含字符串值的键值对在底层都是由 SDS 实现的。
举个例子, 如果客户端执行命令:
12127.0.0.1:6379> set hello worldO ...
更新OneIndex支持Api接口上传
更新背景
OneIndex 项目源码地址:https://github.com/Layne666/oneindex
之前买的 OneDrive 世纪互联账号失效了,OneIndex 就一直没用了,废弃掉了。但最近偶然间又遇到一个商家,发现卖得不贵就又买了一个玩玩。
之前我的图床用的是自己阿里云服务器搭建的 Chevereto 图床(支持 API 接口上传图片),不过图片加载速度受限于服务器的带宽,所以再买了 OneDrive 世纪互联账号之后,便考虑用 OneIndex 的图床功能。
但用过 OneIndex 的都知道,OneIndex 虽然支持图床设置,但是只支持页面上传,无奈之下,只能自己动手继续改一下 OneIndex 代码了。
API 接口上传文件
OneIndex 支持 API 接口上传文件后,用 Typora + PicGo 写作也太舒服了吧!🎉🎉
接口地址:/api/v1/upload
POST参数名:file
请求头:{“authcode”:”xxxxxx”}
authcode:对应 OneIndex 图床配置的授权码
多线程入门到入土系列(一)之初识多线程
一直以来并发编程对于没接触过的人来说总是觉得高深莫测,当然也有像我这样的,虽然接触过,但是知识点还是太过片面,不够系统化。于是乎,我就诞生了写多线程入门到入土一系列文章的想法,以提升自己对并发编程的理解和认知。(小声BB:我不会说这是威哥逼迫我去写的!)
进程、线程与任务进程进程,大家估计是很了解的了,在Windows下打开任务管理器,可以发现我们在操作系统上运⾏的程序都是进程:
进程(Process)是程序的运行实例。例如,一个运行的Typora就是一个进程。而运行一个 Java 程序的实质是启动一个 Java 虚拟机进程,也就是说一个运行的 Java 程序就是一个 Java 虚拟机进程。
进程的定义:
进程是程序的⼀次执⾏,进程是⼀个程序及其数据在处理器上顺序执⾏时所发⽣的活动,进程是具有独⽴功能的程序在⼀个数据集合上运⾏的过程,它是系统进⾏资源分配和调度的⼀个独⽴单位。
进程是系统进⾏资源分配和调度的独⽴单位。每⼀个进程都有它自己的内存空间和系统资源。
线程那系统有了进程这么⼀个概念了,进程已经是可以进⾏资源分配和调度了,为什么还要线程呢 ???
为使程序能并发执⾏,系 ...
利用 GitLab 实现 Hexo 博客的 CI/CD
Gitlab CI介绍123456Gitlab是常用的开源git代码管理工具之一,随着发展也推出了ci/cd解决方案.顾名思义具体来说ci/cd主要完成以下两个工作. ci(持续构建) 代码提交后触发自动化的单元测试,代码预编译,构建镜像,上传镜像等. cd(持续发布) 持续发布则指将构建好的程序发布到各种环境,如预发布环境,正式环境.
官网: https://docs.gitlab.com/ee/ci/README.html
特性12gitlab ci/cd是由独立的runner程序完成,runner采用go语言编写,因此可以很好的进行跨平台,通常可以将runner部署到任何gitlab server之外的服务器,从而避免对gitlab server的影响.
官网:https://docs.gitlab.com/runner/
GitLab Runner安装添加gitlab官方库1curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/scrip ...
动态修改logback的日志级别
前段时间,威哥曾问我:线上环境的logback日志级别怎么动态修改?我:???
没了解过呀,不知道咋弄。利用空闲时间研究了下,于是就有了这篇文章!
logback.xml自动扫描重新加载配置logback.xml 中的 configuration 标签有 <configuration scan="true" scanPeriod="60 seconds"> 这样一段配置,其中的scan如果设置为 true 的话,项目在启动后就会默认每一分钟自动扫描配置文件,如果有改变则重新加载,而我们还可以设置自动扫描的时间间隔属性scanPeriod,可以设置成30秒或者几分钟。
以前在实际的问题排查过程中,可能都是先修改一下 logback.xml 中的root标签中的level属性,然后替换线上环境服务器项目中 classes 路径下的 logback.xml 文件,然后再重启项目,这样项目就可以重新加载 logback.xml 配置文件。现在只要在 logback.xml 中添加一个属性,以后可以直接在服务器上修改 logback.xml ...
解决Hexo的command not found问题
在 Linux 环境上安装完 Hexo 之后,发现报如下错,找不到hexo命令:
12[root@xxx ~]# hexo version-bash: hexo: command not found
解决方案:找到对应安装的位置123456789[root@xxx ~]# find / -name hexo /usr/local/nodejs/lib/node_modules/hexo-cli/bin/hexo/usr/local/nodejs/bin/hexo/var/lib/jenkins/workspace/blog/node_modules/.bin/hexo/var/lib/jenkins/workspace/blog/node_modules/hexo/var/lib/jenkins/workspace/blog/node_modules/hexo/lib/hexo/var/lib/jenkins/workspace/blog/node_modules/hexo/node_modules/.bin/hexo/var/lib/jenkins/workspace/blog/n ...
FRP实现内网穿透
疫情期间大家都在讨论 远程办公的实现,而搭建 frp 服务器进行内网穿透,可用且推荐,可以达到不错的速度,且理论上可以开放任何想要的端口,可以实现的功能远不止远程桌面或者文件共享。
FRP是什么简单地说,frp 就是一个反向代理软件,它体积轻量但功能很强大,可以使处于内网或防火墙后的设备对外界提供服务,它支持HTTP、TCP、UDP等众多协议。
软件包下载地址https://github.com/fatedier/frp/releases
FRP服务端配置1234567[common]bind_port = 7000vhost_http_port = 8080dashboard_port = 7500dashboard_user = admindashboard_pwd = admin
nohup ./frps -c ./frps.ini & //后台启动命令
FRP客户端配置123456789101112131415161718[common]#公网ipserver_addr = x.x.x.xserver_port = 7000[ssh]type = tcploca ...
iHopess
从建这个Hexo博客开始到现在也快一年了,当时建博客的初衷是一方面是为了能把自己学到的东西作为笔记记下来,另一方面是希望自己写的东西对其他人也有帮助。
有时候,我也会去回顾自己的笔记记录,结果发现每一类的文章不在一块儿,看完一篇之后需要去归档里找后一篇,就很麻烦。所以,我就萌发一个想法,干脆这博客就用来记日常,然后,重新搭个便于查看笔记的博客—iHopess。于是乎,我找到了Vuepress,Vuepress搭起来很简单,不麻烦,也很好上手。
所以呢,以后资料笔记什么的都记到 iHopess 博客下。
当然,我也希望有这个想法的小伙伴可以入坑,一起贡献自己整理的知识笔记。