原创 Spring Boot 跨域解決方案

跨域 前端和後端的跨域問題,主要是由於瀏覽器同源策略的限制,同源一般指相互請求資源的兩個域的協議、域名(主域名以及子域名)和端口號都相同,其中任何一個不相同就會出現跨域請求被限制的問題。 同源策略的限制主要是爲了避免瀏覽器受到 XSS、CS

原创 MySQL - 存儲對象

視圖 視圖(View)是一種虛擬存在的表,視圖中的數據並不在數據庫中實際存在,行和列數據來自定義視圖的查詢中使用的表,並且是在使用視圖時自動生成的。 創建視圖:create [or replace] view 視圖名稱[(列名列表)] a

原创 MySQL - 管理

系統數據庫 MySQL 安裝完後,自帶了下邊四個數據庫: 數據庫 含義 mysql 存儲 MySQL 服務器正常運行需要的各種信息(時區、主從、用戶、權限...) information_schema 提供了訪問數據庫的各

原创 MySQL - 存儲引擎 邏輯存儲結構 架構 事務原理 MVCC(多版本併發控制)

邏輯存儲結構 表空間:ibd 文件,一個 MySQL 實例可以對應多個表空間,用於存儲記錄、索引等數據。 段:分爲數據段(Leaf node segment)、索引段(Non-leaf node segment)、回滾段(Rollb

原创 MySQL - 日誌

錯誤日誌 錯誤日誌記錄了當 MySQL 啓動、停止時,以及服務在運行過程中發生錯誤的相關信息,當數據庫出現故障無法正常使用時可以查看該日誌。 在 linux 中,錯誤日誌默認存放在/var/log/目錄下,默認的文件名爲mysqld.log

原创 Spring Boot 整合 GraphQL

GraphQL 是一個用於 API 的查詢語言,是一個使用基於類型系統來執行查詢的服務端運行時(類型系統由你的數據定義)。GraphQL 並沒有和任何特定數據庫或者存儲引擎綁定,而是依靠你現有的代碼和數據支撐。 可見 GraphQL 的

原创 MongoDB 整合 Spring Boot 一、準備工作 二、集合、索引 三、添加文檔 四、查詢文檔 五、刪除文檔 六、更新文檔 七、聚合操作 八、事務

上一篇記錄了 MongoDB 的一些基礎知識,以及在 Mongo Shell 中操作 MongoDB,本文內容將更貼合實際的開發,主要介紹如何使用 SpringBoot 來操作 MongoDB,採用目前最新的 SpringBoot2.6.0

原创 MongoDB 入門 一、認識 MongoD 二、文檔的 CRUD 操作 三、聚合操作 四、索引 五、事務 六、副本集

本文主要記錄近期學習 MongoDB 的一些內容,主要參考了官方文檔 https://docs.mongodb.com/v4.4/,MongoDB 的官方文檔寫的還是挺不錯的,很詳細,值得一看。 本文包含以下幾部分內容: 認識 Mongo

原创 Redis 緩存過期、淘汰、穿透、擊穿、雪崩

在實際的業務場景中,我們經常會用 MySQL 存儲數據,隨着業務的發展,數據量也會越來越大,這樣數據庫操作的 I/O 效率會越來越差、耗時,影響性能以及用戶體驗。而且大多數的用戶請求都是查詢操作,還可能出現大量重複的查詢請求,比如 618

原创 Redis 主從同步

主從同步也稱作主從複製,一般由最少3臺 Redis 服務器節點組成,其中包括一個主節點(master)以及多個從節點(slave),也就是一主多從的模式。在一定的時機下,從節點會去同步主節點的數據。實現了主從同步的結構後,一方面可以備份數據

原创 Redis 中使用 Lua 腳本

Redis 本身已經提供了豐富的命令,但是直接用來處理一些複雜業務時可能還不夠方便,會有一定的侷限性。因此,在 Redis2.6 版本開始提供了對 Lua 腳本的支持,Lua 腳本的使用還是比較廣泛的,比如商品秒殺、分佈式鎖等,使用 Lua

原创 使用 Java 客戶端操作 Redis

一、Jedis 創建一個 Maven 項目,添加 Jedis 依賴: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId>

原创 Redis 特殊數據類型

一、Geo Geo,即地理位置,核心原理是使用 GeoHash 這種地理空間位置編碼方法,將二維的地理空間位置的經度、緯度、名稱編碼成一維字符串,GeoHash 表示的是一個區域。 可以用來計算兩個位置之間的距離(測距),某位置周圍一定距

原创 Elasticsearch Search Scroll API(滾動查詢)

Elasticsearch 中,傳統的分頁查詢使用from+size的模式,from就是頁碼,從 0 開始。默認情況下,當(from+1)*size大於 10000 時,也就是已查詢的總數據量大於 10000 時,會出現異常。 如下,用循環

原创 SpringBoot 整合 MyBatis 配置多數據源

一、配置單數據源 在學習配置多數據源之前,先來複習一下單數據源的配置。 創建好 SpringBoot 項目,在pom.xml添加需要的依賴: <dependency> <groupId>org.mybatis.spring.boot