最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Linux運(yùn)維工程師面試題(4)

2023-03-25 20:44 作者:阿賢在b站  | 我要投稿

Linux運(yùn)維工程師面試題(4)
1 redis 常用的數(shù)據(jù)類型
2 redis 數(shù)據(jù)持久化有幾種,區(qū)別是什么,如何選擇
3 redis 有哪些架構(gòu)模式
4 什么是緩存雪崩?如何解決?
5 什么是緩存穿透?如何解決?
6 什么是緩存擊穿?如何解決?
7 redis 為什么這么快
8 Redis 常用命令
9 SQL 語句分類
10 多表查詢

Linux運(yùn)維工程師面試題(4)

祝各位小伙伴們?cè)缛照业阶约盒膬x的工作。 持續(xù)學(xué)習(xí)才不會(huì)被淘汰。 地球不爆炸,我們不放假。 機(jī)會(huì)總是留給有有準(zhǔn)備的人的。 加油,打工人!

1 redis 常用的數(shù)據(jù)類型

  • String:字符串,最基礎(chǔ)的數(shù)據(jù)類型

  • List:列表

  • Hash:哈希對(duì)象

  • Set:集合

  • Sorted Set:有序集合,Set 的基礎(chǔ)上加了個(gè)分值

2 redis 數(shù)據(jù)持久化有幾種,區(qū)別是什么,如何選擇

rdb 和 aof 兩種

aof 類似于 mysql 的二進(jìn)制日志,它把所有的操作都記錄在日志里。而 rdb 就是真正存儲(chǔ)的數(shù)據(jù),相當(dāng)于把內(nèi)存中 redis 的所有數(shù)據(jù)快照到了磁盤中。

如果主要充當(dāng)緩存功能,或者可以承受數(shù)分鐘數(shù)據(jù)的丟失,通常生產(chǎn)環(huán)境一般只需啟用RDB即可,此也是默認(rèn)值;如果數(shù)據(jù)需要持久保存,一點(diǎn)也不能丟失,可以選擇同時(shí)開啟RDB和AOF,一般不建議只開啟AOF。

3 redis 有哪些架構(gòu)模式

  • 主從復(fù)制

  • 哨兵(Sentinel)

  • Redis Cluster

4 什么是緩存雪崩?如何解決?

定義:如果緩存數(shù)據(jù)設(shè)置的過期時(shí)間是相同的,就會(huì)導(dǎo)致在某段時(shí)間內(nèi)緩存同時(shí)失效,請(qǐng)求全部走數(shù)據(jù)庫,會(huì)導(dǎo)致數(shù)據(jù)庫宕機(jī)。

解決辦法:

在緩存的時(shí)候給過期時(shí)間加上一個(gè)隨機(jī)值,這樣就會(huì)大幅度的減少緩存在同一時(shí)間過期。

5 什么是緩存穿透?如何解決?

定義:緩存穿透是指查詢一個(gè)一定不存在的數(shù)據(jù)。由于緩存不命中,并且出于容錯(cuò)考慮,如果從數(shù)據(jù)庫查不到數(shù)據(jù)則不寫入緩存,這將導(dǎo)致這個(gè)不存在的數(shù)據(jù)每次請(qǐng)求都要到數(shù)據(jù)庫去查詢,失去了緩存的意義,請(qǐng)求的數(shù)據(jù)在緩存大量不命中,導(dǎo)致請(qǐng)求走數(shù)據(jù)庫。

解決辦法:

由于請(qǐng)求的參數(shù)是不合法的(每次都請(qǐng)求不存在的參數(shù)),于是我們可以使用布隆過濾器(BloomFilter)或者壓縮 filter 提前攔截,不合法就不讓這個(gè)請(qǐng)求到數(shù)據(jù)庫層!

當(dāng)我們從數(shù)據(jù)庫找不到的時(shí)候,我們也將這個(gè)空對(duì)象設(shè)置到緩存里邊去。下次再請(qǐng)求的時(shí)候,就可以從緩存里邊獲取了。

這種情況一般會(huì)將空對(duì)象設(shè)置一個(gè)較短的過期時(shí)間。

6 什么是緩存擊穿?如何解決?

定義:某一個(gè)熱點(diǎn)key,在不停地扛著高并發(fā),當(dāng)這個(gè)熱點(diǎn)key在失效的一瞬間,持續(xù)的高并發(fā)訪問就擊破緩存直接訪問數(shù)據(jù)庫,導(dǎo)致數(shù)據(jù)庫宕機(jī)。

解決辦法:

設(shè)置熱點(diǎn)數(shù)據(jù)"永不過期"加上互斥鎖。上面的現(xiàn)象是多個(gè)線程同時(shí)去查詢數(shù)據(jù)庫的這條數(shù)據(jù),那么我們可以在第一個(gè)查詢數(shù)據(jù)的請(qǐng)求上使用一個(gè)互斥鎖來鎖住它,其他的線程走到這一步拿不到鎖就等著,等第一個(gè)線程查詢到了數(shù)據(jù),然后將數(shù)據(jù)放到redis緩存起來。后面的線程進(jìn)來發(fā)現(xiàn)已經(jīng)有緩存了,就直接走緩存。

總結(jié): 雪崩是大面積的key緩存失效;穿透是redis里不存在這個(gè)緩存key;擊穿是redis某一個(gè)熱點(diǎn)key突然失效,最終的受害者都是數(shù)據(jù)庫。

7 redis 為什么這么快

  1. 完全基于內(nèi)存,絕大部分請(qǐng)求是純粹的內(nèi)存操作,非??焖?。數(shù)據(jù)存在內(nèi)存中,類似于 HashMap,HashMap 的優(yōu)勢(shì)就是查找和操作的時(shí)間復(fù)雜度都是O(1);

  2. 數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單,對(duì)數(shù)據(jù)操作也簡(jiǎn)單,Redis 中的數(shù)據(jù)結(jié)構(gòu)是專門進(jìn)行設(shè)計(jì)的;

  3. 采用單線程,避免了不必要的上下文切換和競(jìng)爭(zhēng)條件,也不存在多進(jìn)程或者多線程導(dǎo)致的切換而消耗CPU,不用去考慮各種鎖的問題,不存在加鎖釋放鎖操作,沒有因?yàn)榭赡艹霈F(xiàn)死鎖而導(dǎo)致的性能消耗;

  4. 使用多路 I/O 復(fù)用模型,非阻塞 IO;

  5. 使用底層模型不同,它們之間底層實(shí)現(xiàn)方式以及與客戶端之間通信的應(yīng)用協(xié)議不一樣,Redis 直接自己構(gòu)建了 VM 機(jī)制 ,因?yàn)橐话愕南到y(tǒng)調(diào)用系統(tǒng)函數(shù)的話,會(huì)浪費(fèi)一定的時(shí)間去移動(dòng)和請(qǐng)求

8 Redis 常用命令

  • INFO:顯示當(dāng)前節(jié)點(diǎn)redis運(yùn)行狀態(tài)信息

  • SELECT:切換數(shù)據(jù)庫,相當(dāng)于在MySQL的USE DBNAME指令

  • KEYS:查看當(dāng)前庫下的所有key,此命令慎用!

  • BGSAVE:手動(dòng)在后臺(tái)執(zhí)行RDB持久化操作

  • DBSIZE:返回當(dāng)前庫下的所有key數(shù)量

  • FLUSHDB:強(qiáng)制清空當(dāng)前庫中的所有key,此命令慎用!

  • FLUSHALL:強(qiáng)制清空當(dāng)前redis服務(wù)器所有數(shù)據(jù)庫總的所有key,即刪除所有數(shù)據(jù),此命令慎用!

9 SQL 語句分類

  • DDL:Data Defination Language 數(shù)據(jù)定義語言 CREATE,DROP,ALTER

  • DML:Data Manipulation Language 數(shù)據(jù)操縱語言 INSERT,DELETE,UPDATE

  • DQL:Data Query Language 數(shù)據(jù)查詢語言 SELECT

  • DCL:Data Control Language 數(shù)據(jù)控制語言 GRANT,REVOKE,COMMIT,ROLLBACK

軟件開發(fā)人員稱呼:CRUD,對(duì)應(yīng)增查改刪

10 多表查詢

  • 子查詢:在SQL語句嵌套著查詢語句,性能較差,基于某語句的查詢結(jié)果再次進(jìn)行的查詢

  • 聯(lián)合查詢:UNION

  • 交叉連接:笛卡爾乘積,cross join

  • 內(nèi)連接: 等值連接:讓表之間的字段以"等值“建立連接關(guān)系 不等值連接 自然連接:去掉重復(fù)列的等值連接

  • 外連接: 左外連接:FROM tb1 LEFT JOIN tb2 ON tb1.col=tb2.col 右外連接:FROM tb1 RIGHT JOIN tb2 ON tb1.col=tb2.col 自連接:本表和本表進(jìn)行連接查詢

例:

以上面試題僅僅個(gè)人總結(jié),想到什么就寫什么,沒有任何順序,寫的有什么不對(duì)的地方請(qǐng)各位大佬評(píng)論、留言,我會(huì)及時(shí)更正。

原文鏈接: [Linux運(yùn)維工程師面試題(4)](https://blog.waluna.top/2023/03/04/1351/).

Linux運(yùn)維工程師面試題(4)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
云龙县| 泉州市| 扶绥县| 杭州市| 棋牌| 湖北省| 万州区| 江川县| 博白县| 文山县| 沁阳市| 安吉县| 陈巴尔虎旗| 台南市| 南木林县| 弥勒县| 彭水| 来宾市| 扎兰屯市| 岑溪市| 板桥市| 广丰县| 灌云县| 嘉荫县| 河北省| 濮阳市| 辽宁省| 甘谷县| 昭通市| 咸丰县| 大安市| 开封市| 鄄城县| 开原市| 定襄县| 禄丰县| 安化县| 买车| 新闻| 建德市| 呼和浩特市|