java后端工程师进修ing(研一版‖day47)
今日总结
- java随征录——压力测试,谷粒商城转学成在线
- 科研随探录——
- 八股随笔录——Redis面试篇(1/7)
- 代码随想录——排列
详细内容
java随征录(学的有好多,懒得记了)
谷粒商城的项目先搁置了(依赖包的版本太老了,好多冲突了,都快配麻了,明天开始上手学成在线)
压力测试
- 响应时间:从客户端发送一个请求开始,到客户端接收到从服务器 端返回的响应结束整个过程的时间
- HPS:每秒点击次数
- TPS:系统每秒处理交易数
- QPS:系统每秒处理查询次数
科研随探录
八股随笔录
- 讲一下redis底层的数据结构
redis提供了丰富的数据类型,常见的有五种数据类型:
String: 缓存对象、常规计数、分布式锁、共享session信息等。
Hash:缓存对象、购物车
List:消息队列
Set:聚合计算场景
Zset:排序场景
- 跳表怎么实现的
链表在查找元素的时候,因为需要逐一查找。所以查询效率非常低,于是就出现了跳表。他是在链表基础上改进过来的,实现了一种多层的有序链表。
- 为什么redis使用跳表而不是用B+树?
Redis 是内存数据库,跳表在实现简单性、写入性能、内存访问模式等方面的综合优势,使其成为更合适的选择。
1. B+树的设计是优化磁盘I/o,通过减少树的高度来降低磁盘寻道次数。
2. 叶子节点形成有序链表,范围查询性能极佳。
3. 跳表基于链表,通过多级索引加速查询,内存访问模式更符合CPU缓存局部性
代码随想录
给定两个整数 n
和 k
,返回范围 [1, n]
中所有可能的 k
个数的组合。
你可以按 任何顺序 返回答案。
示例 :
输入:n = 4, k = 2 输出: [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4], ]
class Solution {List<List<Integer>> result = new ArrayList<>();LinkedList<Integer> path = new LinkedList<>();public List<List<Integer>> combine(int n, int k) {combine(n, k , 1);return result;}private void combine(int n, int k ,int startIndex) {if(path.size() == k) {result.add(new ArrayList<>(path));return;}for(int i = startIndex; i <= n; i++) {path.add(i);combine(n, k, i + 1);path.removeLast();}}
}