wordpress wjj搜索引擎優(yōu)化的基本方法
本文作者:程序員魚皮
免費編程學(xué)習(xí) - 編程導(dǎo)航網(wǎng):https://www.code-nav.cn
大家好,我是魚皮。
之前已經(jīng)給大家分享了三個全棧項目,比如瑞吉外賣什么的,這幾個項目都是側(cè)重于帶大家學(xué)習(xí)框架的運用、以及一些簡單的業(yè)務(wù)邏輯,但單獨看代碼就會發(fā)現(xiàn)沒有太多的編程技巧可以學(xué)習(xí)。
這次給大家分享的項目則是一個專門用來學(xué)習(xí) Redis 技術(shù)的 免費項目 —— 某馬點評。事先說明,我可沒有被綁架,而是前段時間我在復(fù)習(xí) Redis 的時候把這個項目完整刷了一遍,覺得確實不錯,才分享給大家。
這是我自己記錄的筆記:
我當(dāng)時學(xué) Redis 的時候是先學(xué)會用法,再自己通過做項目來摸索其應(yīng)用場景,根本沒有這種系統(tǒng)的、項目實踐式的教程。不得不感嘆,現(xiàn)在學(xué)編程的資源真的是太豐富了、成本也越來越低了。
下面我?guī)Т蠹乙黄饋韺W(xué)習(xí)下這個項目。
提示:本文超長,適合收藏
項目介紹
在線店鋪點評 APP( H5 網(wǎng)頁),有點類似美團(tuán)點評。
特色:
- 項目整體比較精簡,適合初學(xué)練手
- 項目中大量運用到了 Redis,極其適合學(xué)習(xí) Redis 的同學(xué)來實戰(zhàn)(事實上這個項目都是為了 Redis 課而生的)
- 項目的代碼細(xì)節(jié)很多,能學(xué)到不少優(yōu)化技巧
項目功能
包括:查看點評(熱評)、發(fā)布點評、點贊
關(guān)注、查詢關(guān)注的人發(fā)的帖子、查看好友共同關(guān)注
分類瀏覽店鋪、查看附近的店鋪
個人信息查看和管理
話說項目太仿真了,在用戶編輯資料頁竟然還能開 VIP?!🐶
項目資料
快速導(dǎo)學(xué)視頻:https://www.bilibili.com/video/BV1PG4y1s7io
原課程視頻地址:https://www.bilibili.com/video/BV1cr4y1671t
這個項目沒有專門的課程,而是融合在了 Redis 的教程中,可以從 P24 開始看。
編程導(dǎo)航 的同學(xué)也可以直接獲取我整理好的代碼 + 學(xué)習(xí)資料 + 原創(chuàng)筆記 + 簡歷亮點:https://www.code-nav.cn/post/1808580989170089985
技術(shù)棧
后端
Spring 相關(guān):
- Spring Boot 2.x
- Spring MVC
數(shù)據(jù)存儲層:
- MySQL:存儲數(shù)據(jù)
- MyBatis Plus:數(shù)據(jù)訪問框架
Redis 相關(guān):
- spring-data-redis:操作 Redis
- Lettuce:操作 Redis 的高級客戶端
- Apache Commons Pool:用于實現(xiàn) Redis 連接池
- Redisson:基于 Redis 的分布式數(shù)據(jù)網(wǎng)格
工具庫:
- HuTool:工具庫合集
- Lombok:注解式代碼生成工具
前端
前端不是本項目的重點,了解即可:
- 原生 HTML、CSS、JS 三件套
- Vue 2(漸進(jìn)式使用)
- Element UI 組件庫
- axios 請求庫
技術(shù)架構(gòu)圖
這個項目是單體項目,架構(gòu)比較簡單,下圖依然是理想架構(gòu),實際上只用單臺 Tomcat、MySQL、Redis 即可:
學(xué)習(xí)重點
這個項目幾乎用到了 Redis 的所有主流特性,都值得重點學(xué)習(xí),如官方提供的項目介紹圖:
快速啟動項目
請看這個視頻:https://www.bilibili.com/video/BV1PG4y1s7io
項目學(xué)習(xí)
課程學(xué)習(xí)
這里給大家劃分一下視頻章節(jié)對應(yīng)的知識點:
- p1 - p23 Redis 基礎(chǔ)學(xué)習(xí)
- p24 - p25 本項目介紹
- p26 - p34 Redis 短信登錄和 Session 共享
- p35 - p47 Redis 緩存應(yīng)用
- p48 - p49 Redis 實現(xiàn)全局唯一 id 生成
- p50 - p55 傳統(tǒng)秒殺實現(xiàn)方案
- p56 - p68 Redis 實現(xiàn)分布式鎖
- p69 - p71 Redis 實現(xiàn)秒殺
- p72 - p77 Redis 實現(xiàn)消息隊列
- p80 - p81 Redis 點贊及點贊排行榜
- p82 - p83 Redis 實現(xiàn)共同關(guān)注
- p84 - p87 Redis 實現(xiàn) Feed 流
- p88 - p90 Redis 實現(xiàn)附近店鋪功能(GEO)
- p91 - p93 Redis 實現(xiàn)簽到
- p94 - p95 Redis 實現(xiàn) UV 統(tǒng)計
單純?yōu)榱送瓿身椖康脑?#xff0c;直接看 p24 - p95 即可。
代碼學(xué)習(xí)
config 目錄:存放項目依賴相關(guān)配置
- MvcConfig:配置了登錄、自動刷新登錄 Token 的攔截器
- MybatisConfig:配置 MyBatis Plus 分頁插件
- RedissonConfig:創(chuàng)建單例 Redisson 客戶端
- WebExceptionAdvice:全局響應(yīng)攔截器
controller 目錄:存放 Restful 風(fēng)格的 API 接口
dto 目錄:存放業(yè)務(wù)封裝類,如 Result 通用響應(yīng)封裝(不推薦學(xué)習(xí)它的寫法)
entity 目錄:存放和數(shù)據(jù)庫對應(yīng)的 Java POJO,一般是用 MyBatisX 等插件自動生成
mapper 目錄:存放操作數(shù)據(jù)庫的代碼,基本沒有自定義 SQL,都是復(fù)用了 MyBatis Plus 的方法,不做重點學(xué)習(xí)。
service 目錄:存放業(yè)務(wù)邏輯處理代碼,需要重點學(xué)習(xí)
- BlogServiceImpl:基于 Redis 實現(xiàn)點贊、按時間排序的點贊排行榜;基于 Redis 實現(xiàn)拉模式的 Feed 流,推薦學(xué)習(xí)
- FollowServiceImpl:基于 Redis 集合實現(xiàn)關(guān)注、共同關(guān)注,推薦學(xué)習(xí)
- ShopServiceImpl:基于 Redis 緩存優(yōu)化店鋪查詢性能;基于 Redis GEO 實現(xiàn)附近店鋪按距離排序,推薦學(xué)習(xí)
- UserServiceImpl:基于 Redis 實現(xiàn)短信登錄(分布式 Session),推薦學(xué)習(xí)(雖然沒有真的實現(xiàn)短信登錄,而是通過日志打印驗證碼代替)
- VoucherOrderServiceImpl:基于 Redis 分布式鎖、Redis + Lua 兩種方式,結(jié)合消息隊列,共同實現(xiàn)了秒殺和一人一單功能,非常值得學(xué)習(xí)
- VoucherServiceImpl:添加優(yōu)惠券,并將庫存保存在 Redis 中,為秒殺做準(zhǔn)備。
utils 目錄:存放項目內(nèi)通用的工具類,需要重點學(xué)習(xí)
- CacheClient:封裝了通用的緩存工具類,涉及泛型、函數(shù)式編程等知識點,值得學(xué)習(xí)
- RedisConstants:保存項目中用到的 Redis 鍵、過期時間等常量,值得學(xué)習(xí)
- RedisIdWorker:基于 Redis 的全局唯一自增 id 生成器,值得學(xué)習(xí)
- RedisTokenInterceptor:自動刷新 Redis 登錄 Token 有效期,值得學(xué)習(xí)
- SimpleRedisLock:簡單的 Redis 鎖實現(xiàn),了解即可,一般用 Redisson
- UserHolder:線程內(nèi)緩存用戶信息,可以學(xué)習(xí)
學(xué)習(xí)建議
-
這個項目幾乎用到了 Redis 的所有主流特性,非常適合已經(jīng)學(xué)完 Spring Boot、還未系統(tǒng)學(xué)習(xí)過 Redis 的后端同學(xué),其中秒殺功能、一人一單的實現(xiàn)需要格外重點學(xué)習(xí)。
-
課程質(zhì)量極高,一句不少、一句不多、幽默風(fēng)趣、百萬 PPT,還能學(xué)到庫表設(shè)計、代碼抽象復(fù)用、JMeter 壓力測試工具等實用知識。后端的初學(xué)者可以只看 p1 - p95、以及 p134 - p139 的最佳實踐部分,高級篇和原理篇等把項目做完、且其他主流技術(shù)(如消息隊列、微服務(wù))學(xué)的差不多了,等面試前再看就行。
-
雖然項目的實現(xiàn)完整度一般,但是有難度的功能基本都實現(xiàn)了,建議有能力的同學(xué)把它完整實現(xiàn),完全可以寫在簡歷上。
-
在學(xué)習(xí)的過程中,可以多使用 Redis 可視化管理工具來觀察數(shù)據(jù)的變化。比如 Quick Redis(https://quick123.net/)、RESP 等。
-
項目缺乏管理端,可以自行實現(xiàn)如店鋪管理、點評審核等功能。
更多編程學(xué)習(xí)資源
- Java前端程序員必做項目實戰(zhàn)教程+畢設(shè)網(wǎng)站
- 程序員免費編程學(xué)習(xí)交流社區(qū)(自學(xué)必備)
- 程序員保姆級求職寫簡歷指南(找工作必備)
- 程序員免費面試刷題網(wǎng)站工具(找工作必備)
- 最新Java零基礎(chǔ)入門學(xué)習(xí)路線 + Java教程
- 最新Python零基礎(chǔ)入門學(xué)習(xí)路線 + Python教程
- 最新前端零基礎(chǔ)入門學(xué)習(xí)路線 + 前端教程
- 最新數(shù)據(jù)結(jié)構(gòu)和算法零基礎(chǔ)入門學(xué)習(xí)路線 + 算法教程
- 最新C++零基礎(chǔ)入門學(xué)習(xí)路線、C++教程
- 最新數(shù)據(jù)庫零基礎(chǔ)入門學(xué)習(xí)路線 + 數(shù)據(jù)庫教程
- 最新Redis零基礎(chǔ)入門學(xué)習(xí)路線 + Redis教程
- 最新計算機(jī)基礎(chǔ)入門學(xué)習(xí)路線 + 計算機(jī)基礎(chǔ)教程
- 最新小程序入門學(xué)習(xí)路線 + 小程序開發(fā)教程
- 最新SQL零基礎(chǔ)入門學(xué)習(xí)路線 + SQL教程
- 最新Linux零基礎(chǔ)入門學(xué)習(xí)路線 + Linux教程
- 最新Git/GitHub零基礎(chǔ)入門學(xué)習(xí)路線 + Git教程
- 最新操作系統(tǒng)零基礎(chǔ)入門學(xué)習(xí)路線 + 操作系統(tǒng)教程
- 最新計算機(jī)網(wǎng)絡(luò)零基礎(chǔ)入門學(xué)習(xí)路線 + 計算機(jī)網(wǎng)絡(luò)教程
- 最新設(shè)計模式零基礎(chǔ)入門學(xué)習(xí)路線 + 設(shè)計模式教程
- 最新軟件工程零基礎(chǔ)入門學(xué)習(xí)路線 + 軟件工程教程