avatar
文章
13
标签
12
分类
8

主页
分类
标签
关于
thr's blog
搜索
主页
分类
标签
关于
Redis 原理
发表于2024-09-16|更新于2024-09-16|DataBase|redis
Redis 原理篇 原理篇-01.Redis原理篇课程介绍_哔哩哔哩_bilibili 0. 准备 redis 源码:redis 安装包下 src 目录里 1. 数据结构1.1 动态字符串SDS Redis 是基于 C 语言实现的,但没有直接使用 C 语言的字符串(底层是字符数组),C 语言的字符串存在很多问题: 获取字符串长度需要通过运算(字符串数组以 \0 结尾) 非二进制安全(不能包含特殊字符) 不可修改(拼接字符串要申请内存空间) Redis 创建了一种新的字符串结构,称为简单动态字符串SDS(Simple Dynamic String) SDS 本质是一个结构体,底层字符数组 char[] 由SDS自己管理 头:头中记录当前字符串的长度等信息,便于读取 体:真实存储字符串的char[] 源码: sds.h => 支持多种长度字符串 SDS 支持动态扩容: 优点: 二进制安全的:读取数据的时候不是像C中以 /0 为结束标识,而是按照长度,长度是几就读几个 SDS 因为是字节存储,所以也可以存音频,视频等(但不推荐, ...
JVM 入门
发表于2024-09-13|更新于2024-09-13|Java|JVM
JVM 学习视频: 黑马程序员JVM完整教程,Java虚拟机快速入门,全程干货不拖沓_哔哩哔哩_bilibili G1与zgc垃圾回收器剖析_哔哩哔哩_bilibili 1. 概述 什么是 JVM? 定义:java virtual machine 也就是 java 程序(准确说是 java 二进制字节码)的运行环境 java 程序源代码经过 javac 编译成 class 字节码,字节码再通过 java 程序加载到虚拟机里即可运行 好处: 一次编写,到处运行(跨平台是在jvm层面实现的,屏蔽了字节码和底层操作系统的差异,对外提供了一致的运行环境) 自动内存管理,垃圾回收功能(c和c++没有) 数组下标越界检查(c和c++没有) 多态是面向对象的基石(jvm内部使用虚方法表实现多态) jdk & jre & jvm jvm+基础类库 => jre+编译工具 => jdk jvm 只是一套规范,之后的笔记以 HotSpot 虚拟机为例 jvm 的主要组成 类加载系统 内存结构(运行时数据区域) 执行引擎 本地 ...
Lua 脚本
发表于2024-07-14|更新于2024-07-14|DataBase|Lua
Lua 脚本 学习视频: Lua教程-进阶部分 - 4K超清【不定期更新】_哔哩哔哩_bilibili Lua 教程 | 菜鸟教程 (runoob.com) 文档:LuatOS 文档 Lua 5.3 Reference Manual - contents 轻量级、嵌入式脚本语言 最常见的中间件 Redis MySQL Proxy 和 MySQL WorkBench都是可以通过lua脚本进行扩展功能 1. 环境搭建1.1 Win 环境下载 Lua在Windows下的安装、配置、运行_lua-language-server win7-CSDN博客 官网:https://www.lua.org/ 在线编译界面:https://onecompiler.com/lua/42jmby4vv 下载界面:[Download lua-5.4.2_Win32_bin.zip (LuaBinaries) (sourceforge.net)](https://sourceforge.net/projects/luabinaries/files/5.4.2/Tools Executables ...
JUC 并发编程
发表于2024-05-14|更新于2024-05-14|Java|juc
JUC 学习视频:【狂神说Java】JUC并发编程最新版通俗易懂_哔哩哔哩_bilibili 1. 基本介绍 JUC:java.util.concurrent 包,简称 JUC,是 Java 5 引入的并发工具包,提供了大量的并发编程工具和高级特性,用于简化多线程编程 进程和线程: 进程:计算机中正在执行的独立程序,每个进程拥有独立的内存空间和系统资源,进程是CPU资源分配的最小单位 线程:进程内部的执行单元,一个进程可以包含多个线程,线程共享进程的内存空间和资源,线程是CPU调度和执行的最小单位 Java 默认有2个线程 ==> main线程、GC线程 Java 真的可以开启线程? 从源码看,Java 是使用本地 native 方法调用底层的 C/C++ 代码来开启线程 start0 是 Thread 类的私有本地方法,由 JVM 通过 C/C++ 代码实现 123456789101112131415161718192021// C++ 底层, Java是没有权限操作底层硬件的private native void sta ...
Java 集合
发表于2024-05-01|更新于2024-05-14|Java|collection
Java 集合 学习视频:【韩顺平讲Java】Java集合专题 -ArrayList HashMap HashSet List Map TreeMap TreeSet等_哔哩哔哩_bilibili 1. 集合介绍 数组的不足:不够灵活 长度开始时必须指定,而且一旦指定,不能更改 保存的必须为同一类型的元素 使用数组进行增加元素的示意代码比较麻烦 12345678// 数组扩容示例代码Person[] pers = new Person[1];pers[0] = new Person();// 扩容Person[] pers2 = new Person[pers.length + 1] // 创建新数组for() {} // 拷贝 pers 数组的元素到 pers2pers2[pers2.length - 1] = new Person(); // 添加新的对象 集合的好处: 可以动态保存任意多个对象,使用比较方便 提供了一系列方便的操作对象的方法(crud):add、remove、set、get 等 使用集合添加,删除新元素代码更加简洁 2. ...
RabbitMQ 入门
发表于2024-04-12|更新于2024-04-12|MQ|RabbitMQ
RabbitMQ 学习笔记:02-什么是MQ_哔哩哔哩_bilibili 1. 消息队列1.1 MQ 相关概念1.1.1 什么是 MQ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已 还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ 是一种非常常见的上下游 “逻辑解耦+物理解耦” 的消息通信服务 a 给 b 发消息,a 就是上游,b 就是下游 使用了 MQ 之后,消息发送上游只需要依赖 MQ,不用依赖其他服务 1.1.2 为什么要用 MQ MQ 有三大功能: 流量削峰 举例: 如果订单系统最多能处理一万次订单,这个处理能力应付正常时段的下单时绰绰有余,正常时段我们下单一秒后就能返回结果 但是在高峰期,如果有两万次下单操作系统是处理不了的,只能限制订单超过一万后不允许用户下单 使用消息队列做缓冲,我们可以取消这个限制,把一秒内下的订单分散成一段时间来处理,这时有些用户可能在下单十几秒后才能收到下单成功的操作,但是比不能下单的体验要好 图示说明: 应用解耦 ...
awk 编程
发表于2023-11-18|更新于2023-11-18|Linux|awk
使用 awk 编写 shell 脚本 awk 是一个强大的 Linux 命令,有强大的文本格式化的能力 三剑客: grep:擅长单纯的查找或匹配文本内容 awk:更适合编辑、处理匹配到的文本内容 sed:更适合格式化文本内容,对文本进行复杂处理 1. awk 基础 awk 语法: 12awk [option] 'pattern[action]' file ...awk 参数 '条件动作' 文件 Action 指的是动作,awk 擅长文本格式化,且输出格式化后的结果,因此最常用的动作就是 print 条件动作举例: 1234{print $0} # 把每行都打印出来, 等同于 {print}{print $1} # 把每行的第一列打印出来(默认以空格为列的分隔符){print $NF} # 每行的最后一列[倒数第二列可以写成$(NF-1)]{print $1,$4,$5} # 打印多列(中间加上逗号是为了 ...
Redis 基础
发表于2023-11-18|更新于2024-04-12|DataBase|redis
Redis 基础篇 NoSql 数据库 1. 入门1.1 NoSQL SQL 和 NoSQL 关系型数据库 和 非关系型数据库 区别: (1)结构化和非结构化 SQL关系型数据库是结构化数据,每一张表都有严格的约束信息:字段名、字段数据类型、字段约束等等信息,插入的数据必须遵守这些约束 NoSql对数据库格式没有严格约束,往往形式松散,自由。可以是key-value,可以是文档,或者图格式 (2)关联和非关联 关系型: 非关系型 12345678910111213141516171819{ id: 1, name: "张三", orders: [ { id: 1, item: { id: 10, title: "荣耀6", price: 4999 } }, { id: 2, item: { id: 20, title: "小米11", price: 399 ...
爬虫
发表于2023-10-14|更新于2024-04-12|python|spider
爬虫1. 相关概念介绍 解释1:通过一个程序,根据 Url 进行爬取网页,获取有用的信息 解释2:使用程序模拟浏览器,去向服务器发送请求,获取响应信息 1.1 爬虫核心? 爬取网页 解析数据(重点) 难点:爬虫与反爬虫之间的博弈 1.2 爬虫的用途 数据分析/人工数据集 社交软件冷启动 舆情监控 竞争对手监控 1.3 爬虫分类 通用爬虫(不学) 功能:访问网页->抓取数据->数据存储->数据除了->提供检索服务 实例:百度、google等搜索引擎 缺点: 抓取的数据大多是无用的 不能根据用户的需求来精准获取数据 聚焦爬虫 功能:根据需求,实现爬虫程序,抓取需要的数据 设计思路: 确定要爬取的url 模拟浏览器通过 http 协议访问 url,获取服务器返回的 html 代码 解析 html 字符串 增量式爬虫 检测网站中的数据更新情况,只会抓取网站中最新更新出来的数据 1.4 反爬手段 User-Agent: 简称 UA,是一个特殊的字符串头,能识别客户使用的操作系统及版本、CPU 类型、浏览器语言、插件等等 代理 IP ...
Jmeter 压测
发表于2023-08-02|更新于2024-05-01|Jmeter|Jmeter
JMeter参考:JMeter 快速上手 | 白月黑羽 (byhy.net) JMeter 这个软件工具 主要用于服务端系统的性能测试 比如 测试 web网站,API服务器 的性能,如下图所示 1. 安装 JMeter 前提要有 JDK8/JDK11 官网:Apache JMeter - Download Apache JMeter 下载后解压放在 D盘即可 2. 打开 进入 bin 目录下,双击 jmeter.bat 文件,就会出现如下界面: 修改系统背景和字体大小还有语言,可以点击 option 3. 界面简介性能测试是:验证在各种性能负载场景下 ,系统的表现是否符合预期 模拟大量用户访问被测系统? 一个性能测试场景, JMeter称之为 test plan ,中文翻译为 测试计划 。实际上,一个 JMeter的测试计划对应性能测试的一个场景,其实也就是一个测试用例 。应该先准备好性能测试用例, 然后再用JMeter对应配置好一个测试计划来对应它。每个测试计划都可以保存在一个单独的文件中。 JMeter的测试计划,具体里面的内容(怎么测), ...
12
avatar
thr
文章
13
标签
12
分类
8
Follow Me
最新文章
Redis 原理2024-09-16
JVM 入门2024-09-13
Lua 脚本2024-07-14
JUC 并发编程2024-05-14
Java 集合2024-05-01
分类
  • Blockchain1
  • DataBase3
  • Java3
  • Jmeter1
  • Linux1
  • MQ1
  • SSM2
  • python1
标签
juc collection Jmeter RabbitMQ redis Lua mybatis spring fabric spider awk JVM
©2020 - 2024 By thr
搜索
数据库加载中