网络编程
1.说下计算机网络体系结构计算机网络体系结构,一般有三种:OSI 七层模型、TCP/IP 四层模型、五层结构。 三种网络体系结构 简单说,OSI是一个理论上的网络通信模型,TCP/IP是实际上的网络通信模型,五层结构就是为了介绍网络原理而折中的网络通信模型。 OSI 七层模型 OSI 七层模型是国际标准化组织(International Organization for Standardization)制定的一个用于计算机或通信系统间互联的标准体系。 应用层:通过应用进程之间的交互来完成特定网络应用,应用层协议定义的是应用进程间通信和交互的规则,常见的协议有:HTTP FTP SMTP SNMP DNS. 表示层:数据的表示、安全、压缩。确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。 会话层:建立、管理、终止会话,是用户应用程序和网络之间的接口。 运输层:提供源端与目的端之间提供可靠的透明数据传输,传输层协议为不同主机上运行的进程提供逻辑通信。 网络层:将网络地址翻译成对应的物理地址,实现不同网络之间的路径选择, 协议有 ICMP IG...
Redis全部
基础1.说说什么是Redis? Redis图标 Redis是一种基于键值对(key-value)的NoSQL数据库。 比一般键值对数据库强大的地方,Redis中的value支持string(字符串)、hash(哈希)、 list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、 HyperLogLog、GEO(地理信息定位)等多种数据结构,因此 Redis可以满足很多的应用场景。 而且因为Redis会将所有数据都存放在内存中,所以它的读写性能非常出色。 不仅如此,Redis还可以将内存的数据利用快照和日志的形式保存到硬盘上,这样在发生类似断电或者机器故障的时候,内存中的数据不会“丢失”。 除了上述功能以外,Redis还提供了键过期、发布订阅、事务、流水线、Lua脚本等附加功能。 总之,Redis是一款强大的性能利器。 2.Redis可以用来干什么? Redis 缓存 这是Redis应用最广泛地方,基本所有的Web应用都会使用Redis作为缓存,来降低数据源压力,提高响应速度。 计数器 Redis天然支持计数功能,而且计数性能非常好,可以用来记录浏览量、点...
MQ面试经
为什么使用消息队列?消息队列的优点和缺点?kafka、activemq、rabbitmq、rocketmq都有什么优缺点? 面试官角度分析: (1)你知不知道你们系统里为什么要用消息队列这个东西? (2)既然用了消息队列这个东西,你知不知道用了有什么好处? (3)既然你用了MQ,那么当时为什么选用这一款MQ? 1. 为什么使用消息队列?面试官问这个问题的期望之一的回答是,你们公司有什么业务场景,这个业务场景有什么技术挑战,如果不用MQ可能会很麻烦,但是再用了之后带来了很多好处。 消息队列的常见使用场景有很多但是核心的有三个:解耦、异步、削峰 解耦场景描述:A系统发送个数据到BCD三个系统,接口调用发送,那如果E系统也要这个数据呢?那如果C系统现在不需要了呢?现在A系统又要发送第二种数据了呢?A系统负责人崩溃中…再来点崩溃的事儿,A系统要时时刻刻考虑BCDE四个系统如果挂了怎么办?那我要不要重发?我要不要把消息存起来?头发都白了啊… 使用了MQ之后的解耦场景 面试技巧:你需要考虑下,你负责的系统中是否有类似的场景,就是一个系统或者一个模块,调用了多个系统或者模块,相互之间的调用...
macOS 常用命令
123456789101112131415161718192021222324252627282930313233343536373839404142# 安裝必要的環境xcode-select --install# 安裝 brew/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"echo '# Set PATH, MANPATH, etc., for Homebrew.' >> ~/.zprofileecho 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile # 安裝 iterm2brew install iterm2# 安裝 ohmyzsh 插件sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/...
instanceof 与 method_exists
instanceof與method_exists的用法區別。參考StackoverFlow instanceof為保留關鍵字,用於檢查對象是否屬於某個類。如果對象是類的實例,則比較返回true,否則返回 false。通常我們理解為 類型運算符兩邊為對象或類進行比較,等同於===;所以,與CommonService的判斷比較也是可取的。 method_exists為內置函數,用於檢查對象或類是否具有指定的方法。通常我們理解為 對象或類中是否存在指定方法,返回值也為 true 或 false。 結論:倆者的比較維度不同。 比较项 instanceof method_exists 性质 关键保留字 内置函数 用途 检查对象是否属于某一个类 检查对象或类是否具有指定的方法 返回 true 或 false true 或 false instanceof不会告诉你传递的对象是否包含该方法,只告诉你它是那个方法的一个实例。 dyld[43914]: Library not loaded: /opt/homebrew/opt...
macOS APP 管理神器——brew
brew 神器 眾所周知,brew 是 MacOS 系統的管理工具,如果是你重度 Linux 系統使用者,你可能也會知道她。 身為 Mac 用戶,你真的會用嗎?在看到這裡之前,你可能跟我一樣,都不太清楚她~,今天我們就一起了解了解她。 官方安裝指令: 1/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" PS:如果提示相關 git 錯誤,建議可以執行 xcode-select --install 嘗試下。 用 brew管理 APP 可以自動選擇對應芯片的版本,媽媽再也不操心我到處尋找 APP,還擔心我裝錯版本… 總結: 最新的版本;release laster 最合適的版本;Apple M1 or Intel 支持批量安裝;brew install app1 app2... 自動遷移到/Applications/下,無需手動拖拽 一鍵卸載&批量&安全 brew cask uninstall ...
JetBrains系列产品激活方法
首先,自行下载JetBrains的产品,通常推荐JetBrains ToolBox。 其次,访问网站选择对当前网络环境访问效率最好的域名站点。 下载``jetbra.zip包,首行第一句话就是下载。查看readme.txt`,有具体破解步骤。 解压后直接双击点击这个 install.sh 即可。 打开PhpStorm使用 code 码激活,鼠标放在 第三步骤的网站中 PhpStorm Copy to clipboard 点击赋值,粘贴激活即可。 其他产品雷同。
Redis常见的问题及方案
为了便于大家查找问题,了解全貌,整理个目录,我们可以快速全局了解关于Redis 缓存,面试官一般喜欢问哪些问题? 接下来,我们逐条来看看每个问题及解决方案 Redis 有哪些特性? 性能高, 读的速度是100000次/s,写的速度是80000次/s 数据持久化,支持RDB 、AOF 支持事务。通过MULTI和EXEC指令包起来。 多种数据结构类型 主从复制 其他特性:发布/订阅、通知、key过期等 Redis 为什么这么快? 完全基于内存,没有磁盘IO上的开销,异步持久化除外 单线程,避免多个线程切换的性能损耗 非阻塞的IO多路复用机制 底层的数据存储结构优化,使用原生的数据结构提升性能。 Redis 底层的基础数据结构有哪些? 字符串。没有采用C语言的传统字符串,而是自己实现的一个简单动态字符串SDS的抽象类型,并保存了长度信息。 链表(linkedlist)。双向无环链表结构,每个链表的节点由一个listNode结构来表示,每个节点都有前置和后置节点的指针 字典(hashtable)。保存键值对的抽象数据结构,底层使用hash表,每个...
VPN 笔记
飛機場VPN 序號 飛機場 基礎價 流量 時長 推薦星級 1 QuickQ $15 - 30 天 ⭐️ 2 Veee $12.99 - 90 天 ⭐️ 3 追風島 ¥19 1000GB 30 天 ⭐️⭐️ 4 CGRAY ¥16 80GB 30 天 ⭐️⭐️ 5 AgentNEO ¥18 20GB 30 天 ⭐️⭐️ 6 RABBITPRO ¥29 200G 30 天 ⭐️⭐️ 7 Conyss ¥30 20GB 30 天 ⭐️⭐️ 8 超跑 ¥9.9 30GB 30 天 ⭐️⭐️⭐️ 9 Hutao ¥9 50GB 31 天 ⭐️⭐️⭐️ 10 魔戒 ¥12 130GB 不限時 ⭐️⭐️⭐️⭐️ ¥1 2GB 不限時 ⭐️⭐️⭐️⭐️⭐️
MySQL优化经验总结
线上SQL的调优经验 slow_query_log 日志中收集到的慢 SQL ,结合 explain 分析是否命中索引。 减少索引扫描行数,有针对性的优化慢 SQL。 建立联合索引,由于联合索引的每个叶子节点包含检索字段的信息,按最左前缀原则匹配后,再按其它条件过滤,减少回表的数据量。 还可以使用虚拟列和联合索引来提升复杂查询的执行效率。 监控sql执行情况,发邮件、短信报警,便于快速识别慢查询sql 打开数据库慢查询日志功能 简化业务逻辑 代码重构、优化 异步处理 sql优化 索引优化 SQL优化 分页优化。比如电梯直达,limit 100000,10 先查找起始的主键id,再通过id>#{value}往后取10条 尽量使用覆盖索引,索引的叶节点中已经包含要查询的字段,减少回表查询 SQL优化(索引优化、小表驱动大表、虚拟列、适当增加冗余字段减少连表查询、联合索引、排序优化、慢日志 Explain 分析执行计划)。 where子句 避免对字段进行null值判断、表达式操作等; where表之间的连接,必须写在其他where条件之前...





