峰岹科技面试
本文最后更新于 120 天前,其中的信息可能已经有所发展或是发生改变。

峰岹科技一面(技术面 20min)

问题

八股

  1. 自我介绍
  2. 对硬件相关的经历有哪些
  3. mysql的索引机制你了解吗,原理是什么
  4. redis有什么用
  5. linux的常用指令
  6. redis字符串是如何创建的
  7. 动态链接和静态链接有什么区别

项目

项目你是负责哪一部分的?

后端你是如何设计开发的,包括了哪些模块?

单元测试和集成测试你是怎么进行的?

评论接口你是怎么开发的?

答案(gpt+个人理解)

  1. Mysql的索引机制你了解吗,原理是什么

数据结构

  • B-tree:常用的索引结构,支持范围查询。通过分层节点加速查找。
  • 哈希索引:用于等值查询,基于哈希算法进行快速查找,但不支持范围查询。

索引类型

  • 主键索引:唯一标识每条记录,自动创建。
  • 唯一索引:确保索引列的值唯一,但可以有 NULL 值。
  • 普通索引:没有唯一性限制,提高检索速度。
  • 全文索引:用于快速检索文本数据。

索引的优点

  • 加速查询速度,减少 I/O 操作。
  • 提高数据检索效率,优化 SQL 执行计划。

索引的缺点

  • 增加存储空间需求。
  • 插入、更新和删除操作时会带来额外的开销。
  1. redis有什么用

缓存:用于缓存热点数据,减轻数据库负担,提高数据访问速度。

会话存储:存储用户会话信息,实现用户状态保持。

实时数据分析:支持高并发读写,适合实时统计、分析和监控。

消息队列:提供发布/订阅(pub/sub)功能,支持消息的异步处理。

排行榜:使用排序集合(Sorted Set)实现实时排行榜。

分布式锁:实现分布式环境中的锁机制,确保数据一致性。

数据结构支持:提供多种数据结构(如字符串、列表、集合、哈希等),满足不同的应用场景。

持久化:支持数据持久化选项(如 RDB 和 AOF),在重启后恢复数据。

  1. redis字符串是如何创建的

创建字符串: 使用 SET 命令创建或更新一个字符串键值对:

SET key value
SET user "Alice"

获取字符串: 使用 GET 命令获取字符串的值:

GET key
GET user

设置带有过期时间的字符串: 可以使用 SETEX 设置键的值并同时指定过期时间(秒):

SETEX key seconds value
SETEX session 3600 "session_data"

追加字符串: 使用 APPEND 命令将值追加到现有字符串末尾:

APPEND key value
APPEND user "Bob"
  1. linux的常用指令

文件和目录操作

  • ls:列出目录内容。
  • cd:切换目录。
  • pwd:显示当前工作目录。
  • mkdir:创建新目录。
  • rmdir:删除空目录。
  • rm:删除文件或目录。
  • cp:复制文件或目录。
  • mv:移动或重命名文件或目录。

文件查看和编辑

  • cat:查看文件内容。
  • less:分页查看文件内容。
  • more:逐页查看文件内容。
  • head:查看文件开头的几行。
  • tail:查看文件结尾的几行。
  • nano / vim:文本编辑器,用于编辑文件。

系统管理

  • top:实时查看系统进程。
  • ps:查看当前运行的进程。
  • kill:终止进程。
  • df:显示文件系统的磁盘空间使用情况。
  • du:显示文件和目录的磁盘使用情况。

网络操作

  • ping:测试网络连接。
  • ifconfig / ip:查看或配置网络接口。
  • netstat:显示网络连接、路由表和网络接口状态。

文件权限

  • chmod:修改文件或目录的权限。
  • chown:改变文件或目录的所有者。

搜索和查找

  • find:查找文件和目录。
  • grep:在文件中搜索文本模式。

压缩与解压

  • tar:打包和压缩文件。
  • gzip / gunzip:压缩和解压缩文件。
  1. 动态链接和静态链接有什么区别

静态链接

  • 链接时机:在编译时,将库文件的代码直接复制到可执行文件中。
  • 文件大小:生成的可执行文件较大,因为库的代码嵌入其中。
  • 性能:由于库代码已经嵌入,运行时不需要查找外部库,启动速度快。
  • 独立性:静态链接的可执行文件不依赖外部库,即使库发生变化,程序也不受影响。
  • 缺点:当库更新时,需要重新编译整个程序。

动态链接

  • 链接时机:在运行时加载库文件,可执行文件本身不包含库代码,而是通过动态链接库(如 .so 文件)加载。
  • 文件大小:可执行文件较小,因为库代码不包含在文件内。
  • 性能:运行时需要查找和加载动态库,启动时稍慢。
  • 共享性:多个程序可以共享同一个动态库,节省内存资源。
  • 灵活性:库可以独立更新,而不需要重新编译程序,只要接口不变,程序能正常运行。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇