摘要:如何實現(xiàn)持久化持久化,將在內(nèi)存中的的狀態(tài)保存到硬盤中,相當(dāng)于備份數(shù)據(jù)庫狀態(tài)。相當(dāng)于備份數(shù)據(jù)庫接收到的命令,所有被寫入的命令都是以的協(xié)議格式來保存的。
最近社區(qū)里面有一篇文章引起了最多程序猿的關(guān)注,Laravel、PHPer 面試可能會遇到的問題,看評論區(qū)不少小伙伴們被難倒,對于一些問題同樣難倒了我(其實有很多啦),趁著周末有空,又總結(jié)梳理了一遍,順便來答一波題。由于個人技術(shù)水平有限,答案或許會有偏差,歡迎大家指正。
PHP模塊
PHP7 和 PHP5 的區(qū)別,具體多了哪些新特性?
性能提升了兩倍
結(jié)合比較運(yùn)算符 (<=>)
標(biāo)量類型聲明
返回類型聲明
try...catch 增加多條件判斷,更多 Error 錯誤可以進(jìn)行異常處理
匿名類,現(xiàn)在支持通過new class 來實例化一個匿名類,這可以用來替代一些“用后即焚”的完整類定義
…… 了解更多查看文章底部鏈接 PHP7 新特性
為什么 PHP7 比 PHP5 性能提升了?
變量存儲字節(jié)減小,減少內(nèi)存占用,提升變量操作速度
改善數(shù)組結(jié)構(gòu),數(shù)組元素和 hash 映射表被分配在同一塊內(nèi)存里,降低了內(nèi)存占用、提升了 cpu 緩存命中率
改進(jìn)了函數(shù)的調(diào)用機(jī)制,通過優(yōu)化參數(shù)傳遞的環(huán)節(jié),減少了一些指令,提高執(zhí)行效率
laravel 模塊服務(wù)提供者是什么?
服務(wù)提供者是所有 Laravel 應(yīng)用程序引導(dǎo)啟動的中心, Laravel 的核心服務(wù)器、注冊服務(wù)容器綁定、事件監(jiān)聽、中間件、路由注冊以及我們的應(yīng)用程序都是由服務(wù)提供者引導(dǎo)啟動的。
IoC 容器是什么?
IoC(Inversion of Control)譯為 「控制反轉(zhuǎn)」,也被叫做「依賴注入」(DI)。什么是「控制反轉(zhuǎn)」?對象 A 功能依賴于對象 B,但是控制權(quán)由對象 A 來控制,控制權(quán)被顛倒,所以叫做「控制反轉(zhuǎn)」,而「依賴注入」是實現(xiàn) IoC 的方法,就是由 IoC 容器在運(yùn)行期間,動態(tài)地將某種依賴關(guān)系注入到對象之中。
其作用簡單來講就是利用依賴關(guān)系注入的方式,把復(fù)雜的應(yīng)用程序分解為互相合作的對象,從而降低解決問題的復(fù)雜度,實現(xiàn)應(yīng)用程序代碼的低耦合、高擴(kuò)展。
Laravel 中的服務(wù)容器是用于管理類的依賴和執(zhí)行依賴注入的工具。
Facades 是什么?
Facades(一種設(shè)計模式,通常翻譯為外觀模式)提供了一個"static"(靜態(tài))接口去訪問注冊到 IoC 容器中的類。提供了簡單、易記的語法,而無需記住必須手動注入或配置的長長的類名。此外,由于對 PHP 動態(tài)方法的獨(dú)特用法,也使測試起來非常容易。
Contract 是什么?
Contract(契約)是 laravel 定義框架提供的核心服務(wù)的接口。Contract 和 Facades 并沒有本質(zhì)意義上的區(qū)別,其作用就是使接口低耦合、更簡單。
依賴注入的原理?
這個就不解釋了吧,這是理解 IoC 容器的前提。
什么是 Composer, 工作原理是什么?
Composer 是 PHP 的一個依賴管理工具。工作原理就是將已開發(fā)好的擴(kuò)展包從 packagist.org composer 倉庫下載到我們的應(yīng)用程序中,并聲明依賴關(guān)系和版本控制。
緩存
Redis、Memecached 這兩者有什么區(qū)別?
Redis 支持更加豐富的數(shù)據(jù)存儲類型,String、Hash、List、Set 和 Sorted Set。Memcached 僅支持簡單的 key-value 結(jié)構(gòu)。
Memcached key-value存儲比 Redis 采用 hash 結(jié)構(gòu)來做 key-value 存儲的內(nèi)存利用率更高。
Redis 提供了事務(wù)的功能,可以保證一系列命令的原子性
Redis 支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保持在磁盤中
Redis 只使用單核,而 Memcached 可以使用多核,所以平均每一個核上 Redis 在存儲小數(shù)據(jù)時比 Memcached 性能更高。
Redis 如何實現(xiàn)持久化?
RDB 持久化,將 redis 在內(nèi)存中的的狀態(tài)保存到硬盤中,相當(dāng)于備份數(shù)據(jù)庫狀態(tài)。
AOF 持久化(Append-Only-File),AOF 持久化是通過保存 Redis 服務(wù)器鎖執(zhí)行的寫狀態(tài)來記錄數(shù)據(jù)庫的。相當(dāng)于備份數(shù)據(jù)庫接收到的命令,所有被寫入 AOF 的命令都是以 redis 的協(xié)議格式來保存的。
數(shù)據(jù)庫什么是索引,作用是什么?常見索引類型有那些?Mysql 建立索引的原則?
索引是一種特殊的文件,它們包含著對數(shù)據(jù)表里所有記錄的引用指針,相當(dāng)于書本的目錄。其作用就是加快數(shù)據(jù)的檢索效率。常見索引類型有主鍵、唯一索引、復(fù)合索引、全文索引。
索引創(chuàng)建的原則
最左前綴原理
選擇區(qū)分度高的列作為索引
盡量的擴(kuò)展索引,不要新建索引
高并發(fā)如何處理?
使用緩存
優(yōu)化數(shù)據(jù)庫,提升數(shù)據(jù)庫使用效率
負(fù)載均衡
PHP 的設(shè)計模式就不多講了,但是 SOLID 設(shè)計原則是每一位 PHPer 都必須要掌握的。
其他問題遺留又補(bǔ)充了一些 PHPer 的常見面試題留給大神們解答。
分庫分表怎么設(shè)計
如何處理 MySQL 死鎖?
談?wù)勀銓﹂]包的理解
PHP 內(nèi)存回收機(jī)制
如何解決 PHP 內(nèi)存溢出問題
數(shù)據(jù)庫優(yōu)化的方法
簡述 Laravel 的運(yùn)行原理
Laravel 路由實現(xiàn)原理
cookie 和 session 區(qū)別,session 保存在服務(wù)器的哪里?服務(wù)端是如何獲取客戶端的cookie?
服務(wù)器集群搭建、負(fù)載均衡、反向代理
服務(wù)器常用命令
PS: PHPer 面試關(guān)注的技術(shù)實力僅僅只是一部分,還有一部分會關(guān)注你的內(nèi)驅(qū)力、思考力以及表達(dá)能力。其實關(guān)注最多的是你是否是妹子、你的顏值還有你是否單身!!!
答案放在了 GitHub 上,歡迎大家 Stat 和 PR.
傳送門:https://github.com/todayqq/ca...
碼字不易,留下你的贊唄
歡迎大家加我的微信:JINCHAOCHAO0220 ,期待和你一起交流、一起成長!
參考文章php7 新特性
淺談IOC--說清楚IOC是什么
Redis和Memcached的區(qū)別
Redis 持久化
Laravel 中文文檔
MySQL索引原理及慢查詢優(yōu)化
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/25925.html
摘要:擴(kuò)展閱讀收集的前端面試題和答案前端開發(fā)面試題史上最全的前端面試題匯總及答案前端工程師手冊協(xié)議工作原理協(xié)議運(yùn)行機(jī)制的概述 本書的 GitHub 地址:https://github.com/todayqq/PH... 對于大公司,很少會有全棧工程師這個崗位,全棧是個花哨的詞,對于現(xiàn)在比較熱門的技術(shù),不論是 Vue 還是 Laravel,只要智商不差,看著文檔,都能寫出一個 CURD 來,...
摘要:最近面試了不少公司,正好把記得的問題做個總結(jié)。抽象類的接口的區(qū)別,不在于編程實現(xiàn),而在于程序設(shè)計模式的不同。一般來講,抽象用于不同的事物,而接口用于事物的行為。 最近面試了不少公司,正好把記得的問題做個總結(jié)。 本文 github 會持續(xù)更新 公眾號 搜索 蘇生不惑 或者掃二維碼關(guān)注,每周更新。 showImg(https://segmentfault.com/img/bVbsYyM?w...
閱讀 2664·2021-11-18 10:02
閱讀 3426·2021-09-22 15:50
閱讀 2359·2021-09-06 15:02
閱讀 3577·2019-08-29 16:34
閱讀 1745·2019-08-29 13:49
閱讀 1275·2019-08-29 13:29
閱讀 3629·2019-08-28 18:08
閱讀 2937·2019-08-26 11:52