面試高頻問題----4

一、redis和mysql一致性怎么保證?

1.編寫刪除緩存的接口,在更新數據庫的同時,調用刪除緩存的接口刪除緩存中的數據。

2.消息隊列:ActiveMQ、消息通知;將更新操作發送到消息隊列中,順序更新mysql和redis。

二、redis分布式鎖有了解過嗎?

redis的特性:1.安全特性:互斥訪問,即永遠只有一個客戶能拿到鎖;

? ? ? ? ? ? ? ? ? ? ? ?2.避免死鎖:最終客戶都可能拿到鎖,不會出現死鎖的情況;

? ? ? ? ? ? ? ? ? ? ? ?3.容錯性:只要大部分redis節點存活就可以正常提供服務。

redis為單進程單線程模式,采用隊列模式將并發訪問變成串行訪問,且多客戶端對redis的連接并不存在競爭關系redis中可以使用sentnx命令實現分布式鎖。當且僅當key不存在,將key值設為value;若給定的key已經存在,則sentnx不做任何操作。

三、ArrayList和Linkedlist的區別?

ArrayList:1.Arraylist使用動態數組實現,底層基于數組,它通過數組的連續內存空間存儲元素,支持隨機訪問;

? ? ? ? ? ? ? ? 2.ArrayList適用于大量隨機訪問和遍歷操作,但插入和刪除元素時性能較低;

Linkedlist:1.使用雙向鏈表實現,每個節點包含數據元素和兩個指針,分別指向前一個節點和后一個節點;

? ? ? ? ? ? ? ? ?2.Linkedlist適用于大量插入和刪除的操作,對隨機訪問性能要求不高。

四、Mysql隔離級別

1.讀未提交:事務中的修改未提交,其他事務可以讀取到這些未提交的數據。

可能出現的問題:臟讀、不可重復讀、幻讀;

2.讀已提交:事務中的修改提交后,其他事務才能讀取到這些已經提交的數據

可能出現的問題:不可重復讀、幻讀

3.可重復讀:事務中查詢結果保持一致,即使其他事務修改了數據也不會影響當前事務的查詢結果

可能出現的問題:幻讀

4.可串行化:最高隔離級別,確保事務之間完全獨立,避免了所有并發訪問問題,但可能導致性能下降

****補充:臟讀、不可重復讀、幻讀

臟讀:事務 A 讀取了事務 B 更新但未提交的數據,然后基于這些數據進行了操作,如果事務 B 回滾了,則事務 A 讀取到的數據是臟數據。導致讀取到的數據不一致,可能會產生錯誤的計算結果或業務邏輯錯誤。

不可重復讀:事務 A 多次讀取同一個數據項,在兩次讀取之間,事務 B 修改了該數據項,并提交了事務,導致事務 A 讀取到的數據不一致。導致同一個事務中多次讀取到的數據不一致,可能影響事務的正確執行。

幻讀:事務 A 多次查詢一個數據范圍,兩次查詢之間,事務 B 插入了新的數據項并提交了事務,導致事務 A 查詢到的數據項數量不一致。

五、接口和抽象類的區別

1.接口是行為的抽象;抽象是對類的抽象

2.接口沒有構造方法;抽象類有構造方法

3.抽象體現繼承關系;接口體現實現關系

六、spring框架中用到了什么設計模式?

1.工廠模式:Beanfactory是簡單工廠模式的體現,用來創建對象的實例

2.單例模式:Bean默認為單例模式

3.代理模式:spring的AOP功能用到了JDK代理和CGLIB代理

4.模板方法:用來解決代碼重復的問題。

5.觀察者模式:定義對象鍵一種一對多的依賴關系,當一個對象的狀態發生改變時,所有依賴于它的對象都會得到通知被制動更新。

七、注解實現的原理

1.編譯時:編譯器處理源代碼時會檢查注解,并可能據此生成額外的源代碼和資源文件

2.類加載時:某些注解會在類加載到jvm時被處理

3.運行時:在程序運行階段,可以通過反射機制訪問注解信息。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/22799.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/22799.shtml
英文地址,請注明出處:http://en.pswp.cn/web/22799.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

三十七、openlayers官網示例Earthquakes Heatmap解析——在地圖上加載熱力圖

官網demo地址: Earthquakes Heatmap 這篇主要介紹了熱力圖HeatmapLayer HeatmapLayer 是一個用于在地圖上顯示熱力圖的圖層類型,通常用于表示地理數據中的密度或強度。例如,它可以用來顯示地震、人口密度或其他空間數據的熱點區域。在這個示…

Siemens-NXUG二次開發-創建倒斜角特征、邊倒圓角特征、設置對象顏色、獲取面信息[Python UF][20240605]

Siemens-NXUG二次開發-創建倒斜角特征、邊倒圓角特征、設置對象顏色、獲取面信息[Python UF][20240605] 1.python uf函數1.1 NXOpen.UF.Modeling.AskFaceData1.2 NXOpen.UF.Modeling.CreateChamfer1.3 NXOpen.UF.ModlFeatures.CreateBlend1.4 NXOpen.UF.Obj.SetColor 2.實體目標…

lib庫和dll庫的介紹和使用

lib(靜態庫) 靜態庫定義:.lib文件是靜態庫文件,包含了在編譯時被鏈接到目標程序的代碼。使用靜態庫時,庫的代碼會被復制到最終生成的可執行文件中。優點: 性能:由于庫代碼在編譯時就被集成到可…

分布式架構與分布式理論

文章目錄 分布式架構什么是分布式系統分布式系統特性分布式系統面臨的問題 分布式理論數據一致性CAP理論BASE理論 分布式架構 什么是分布式系統 分布式系統是一個硬件或軟件組件分布在不同的網絡計算機上,彼此之間僅僅通過消息傳遞進行通信和協調的系統。 所謂分…

Vue的APP實現下載文件功能,并將文件保存到手機中

Vue的APP實現下載文件功能,并將文件保存到手機中 文字說明后臺核心代碼前臺核心代碼運行截圖項目鏈接 文字說明 本文介紹Vue實現的APP,將文件下載并保存到手機中,為系統提供導出功能;同時支持導入,即選擇本地的文件后&…

Ubuntu18.04 文件管理器無法打開的解決方法

問題:打開Ubuntu虛擬機發現文件管理器無法打開,一直在轉圈圈 在終端中輸入 nautilus 顯示如下信息 nautilus: symbol lookup error: /usr/lib/x86_64-linux-gnu/tracker-2.0/libtracker-data.so.0: undefined symbol: sqlite3_bind_pointer 解決措施&#xff1a…

LabVIEW 反向工程的實現與法律地位

什么是LabVIEW反向工程? 反向工程是指從現有的應用程序或軟件中推導出其設計、架構、代碼等信息的過程。對于LabVIEW而言,反向工程涉及從現有的VI(虛擬儀器)文件、項目或應用程序中提取出設計思路、功能模塊、算法實現等。 LabV…

Spring Boot整合Jasypt 庫實現配置文件和數據庫字段敏感數據的加解密

😄 19年之后由于某些原因斷更了三年,23年重新揚帆起航,推出更多優質博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有堅忍不拔之志 🎐 個人CSND主頁——Mi…

代碼隨想錄第二十九天打卡| 491.遞增子序列,46.全排列,47.全排列 II

491.遞增子序列 本題和大家剛做過的 90.子集II 非常像,但又很不一樣,很容易掉坑里。 代碼隨想錄 視頻講解:回溯算法精講,樹層去重與樹枝去重 | LeetCode:491.遞增子序列_嗶哩嗶哩_bilibili class Solution { public:…

好用軟件推薦

軟件功能相關介紹地址FastStone截圖(長截圖、定時截圖等)CSDNhttps://www.faststone.org/FSCaptureDownload.htmQuicker快捷訪問https://getquicker.net/https://getquicker.net/

大數據學習問題記錄

問題記錄 node1突然無法連接finalshell node1突然無法連接finalshell 今天我打開虛擬機和finalshell的時候,發現我的node1連接不上finalshell,但是node2、node3依舊可以鏈接,我在網上找了很多方法,但是是關于全部虛擬機連接不上finalshell&a…

統一返回響應

前言 我們為什么要設置統一返回響應 提高代碼的可維護性:通過統一返回請求的格式,可以使代碼更加清晰和易于維護,減少重復的代碼,提高代碼質量。 便于調試和測試:統一的返回格式使得在調試和測試時更為簡單&#xff…

大模型時代,是 Infra 的春天還是冬天?

Highlights 大模型時代元年感悟 Scaling Laws 是大模型時代的摩爾定律,是最值得研究的方向 LLM 發展的三個階段: 算法瓶頸 -> 數據瓶頸 -> Infra 瓶頸 為什么 GPT 一枝獨秀, BERT、T5 日落西山? 大模型時代,是大部分 Infra 人的冬天,少部分 Infra 人的春天(算法研…

算法金 | 一文讀懂K均值(K-Means)聚類算法

?大俠幸會,在下全網同名[算法金] 0 基礎轉 AI 上岸,多個算法賽 Top [日更萬日,讓更多人享受智能樂趣] 1. 引言 數據分析中聚類算法的作用 在數據分析中,聚類算法用于發現數據集中的固有分組,通過將相似對象聚集在一…

Qt——前言

一、Qt介紹 ? **Qt技術特指用來桌面應用開發;**客戶端開發的重要任務就是編寫和用戶交互的界面;而與用戶交互的界面有兩種典型風格,1.命令行界面/終端界面,TUI;2.圖形化界面,GUI; ? Qt就是用…

統一響應,自定義校驗器,自定義異常,統一異常處理器

文章目錄 1.基本準備(構建一個SpringBoot模塊)1.在A_universal_solution模塊下創建新的子模塊unified-processing2.pom.xml引入基本依賴3.編寫springboot啟動類4.啟動測試 2.統一響應處理1.首先定義一個響應枚舉類 RespBeanEnum.java 每個枚舉對象都有co…

信息學奧賽初賽天天練-20-完善程序-vector數組參數引用傳遞、二分中值與二分邊界應用的深度解析

PDF文檔公眾號回復關鍵字:20240605 1 2023 CSP-J 完善程序1 完善程序(單選題,每小題 3 分,共計 30 分) 原有長度為 n1,公差為1等升數列,將數列輸到程序的數組時移除了一個元素,導致長度為 n 的開序數組…

云原生架構案例分析_5.某體育用品公司云原生架構的業務中臺構建

1.背景和挑戰 某體育用品公司作為中國領先的體育用品企業之一,在2016年,某體育用品公司啟動集團第三次戰略升級,打造以消費者體驗為核心的“3”(“互聯網”、“體育”和“產品”)的戰略目標,積極擁抱云計算…

NeuralForecast TokenEmbedding 一維卷積 (Conv1d) 與矩陣乘法

NeuralForecast TokenEmbedding 一維卷積 (Conv1d) 與矩陣乘法 flyfish TokenEmbedding中使用了一維卷積 (Conv1d) TokenEmbedding 源碼分析 在源碼的基礎上增加調用示例 下面會分析這段代碼 import torch import torch.nn as nn class TokenEmbedding(nn.Module):def __i…

C++模板類與Java泛型類的實戰應用及對比分析

C模板類和Java泛型類都是用于實現代碼重用和類型安全性的重要工具,但它們在實現方式和應用上有一些明顯的區別。下面,我將先分別介紹它們的實戰應用,然后進行對比分析。 C模板類的實戰應用 C模板類允許你定義一種通用的類,其中類…