01 2023 档案

摘要:为什么大家都说 SELECT * 效率低? 无论在工作还是面试中,关于SQL中不要用“SELECT *”,都是大家听烂了的问题,虽说听烂了,但普遍理解还是在很浅的层面,并没有多少人去追根究底,探究其原理。 效率低的原因 先看一下最新《阿里java开发手册(泰山版)》中 MySQL 部分描述: 【强制 阅读全文
posted @ 2023-01-31 13:54 博学谷狂野架构师 阅读(65) 评论(0) 推荐(0)
摘要:大家都知道,现在只要是个系统就会有缓存的存在,而且几乎所有的系统都离不开Redis,可见Redis在现在系统的重要性。 所以,今天我们就来聊一下Redis,当然主要聊聊Redis在不同业务场景下的使用。 接下来,我们先从缓存的世界开始,一步步揭开Redis的神秘面纱。 1. 缓存发展史&缓存分类 1 阅读全文
posted @ 2023-01-31 13:41 博学谷狂野架构师 阅读(304) 评论(0) 推荐(0)
摘要:Shell 搜索与匹配 1、在文件中查找字符串 grep 命令可以搜索文件,查找指定的字符串。 $ grep myvar *.c 在这个例子中,我们搜索的文件全都位于当前目录下。因此,我们只使用了简单的 shell 模式 *.c 来匹配以 .c 结束的文件,并没有在文件名前再添加路径。 但并非所有待 阅读全文
posted @ 2023-01-12 14:03 博学谷狂野架构师 阅读(136) 评论(0) 推荐(0)
摘要:1、在任意目录之间快速移动 你发现自己要在两个或更多目录之间频繁移动,一会切换到这里,一会切换到那里,来回跳转。这些目录之间隔得还挺远,反复输入冗长的路径让人疲惫不堪。 使用内建命令 pushd 和 popd 来管理目录栈,轻松地在目录之间切换。下面是一个简单的示例: $ cd /tmp/tank 阅读全文
posted @ 2023-01-11 13:53 博学谷狂野架构师 阅读(131) 评论(0) 推荐(0)
摘要:相较于最初的 Bourne shell,现代 bash 版本的最大改进之一体现在算术方面。早期的 shell 版本没有内建的算术功能,哪怕是给变量加1,也得调用单独的程序来完成。 1、算术方法一: $(( )) 只要都是整数运算,就可以在 $(( )) 的算术表达式内使用所有的标准运算符。还有一个额 阅读全文
posted @ 2023-01-10 14:03 博学谷狂野架构师 阅读(161) 评论(0) 推荐(0)
摘要:1、粘包与半包 啥也不说了,直接上代码是不是有点不太友好,我所谓了,都快过年了,还要啥自行车 我上来就是一段代码猛如虎 1.1 服务器代码 public class StudyServer { static final Logger log = LoggerFactory.getLogger(Stu 阅读全文
posted @ 2023-01-05 14:10 博学谷狂野架构师 阅读(139) 评论(0) 推荐(0)
摘要:1、Stream 与 Channel stream 不会自动缓冲数据,channel 会利用系统提供的发送缓冲区、接收缓冲区(更为底层) stream 仅支持阻塞 API,channel 同时支持阻塞、非阻塞 API,网络 channel 可配合 selector 实现多路复用 二者均为全双工,即读 阅读全文
posted @ 2023-01-04 14:06 博学谷狂野架构师 阅读(720) 评论(0) 推荐(0)
摘要:1. 协议的作用 TCP/IP 中消息传输基于流的方式,没有边界 协议的目的就是划定消息的边界,制定通信双方要共同遵守的通信规则 2. Redis 协议 如果我们要向 Redis 服务器发送一条 set name Nyima 的指令,需要遵守如下协议 // 该指令一共有3部分,每条指令之后都要添加回 阅读全文
posted @ 2023-01-03 14:42 博学谷狂野架构师 阅读(250) 评论(0) 推荐(0)