原创 redis探析
Redis (REmote DIctionary Server) 是一個由Salvatore Sanfilippo寫的key-value存儲系統。 Redis過期鍵刪除策略 redisDb 結果的 expires 字典保存了數據庫中所有
原创 mysql的全局鎖
顧名思義,全局鎖就是對整個數據庫實例加鎖。MySQL 提供了一個加全局讀鎖的方法, 命令是 Flush tables with read lock (FTWRL)。當你需要讓整個庫處於只讀狀態的時候, 可以使用這個命令,之
原创 數據庫的查詢緩存
MySQL 拿到一個查詢請求後,會先到查詢緩存看看,之前是不是執行過這條語句。之前執行過的語句及其結果可能會以 key-value 對的形式,被直接緩存在內存中。key 是查詢 的語句,value 是查詢的結果。如果你的查詢能夠直接在這個
原创 關於write()和fsync()
write ssize_t write(int fd, const void *buf, size_t count); 將數據寫到文件中. 注意, 如果文件是保存在硬盤中, write() 函數調用返回之後, 並不表示數據已經寫入到硬盤中
原创 慢查詢記錄
慢查詢 分析MySQL語句查詢性能的方法除了使用 EXPLAIN 輸出執行計劃,還可以讓MySQL記錄下查詢超過指定時間的語句,我們將超過指定時間的SQL語句查詢稱爲“慢查詢”。注意:超過指定時間,這個時間是可以設置的,如果設置爲0秒,那
原创 Spring 如何解決循環依賴?
在Spring實際的開發過程中,可能會出現一種情況:BeanA 依賴BeanB ,BeanB依賴BeanA,代碼如下: @Component public class A { private B b; public void s
原创 幻讀是什麼?
爲了便於進行解釋幻讀,新建一張表進行詳細闡述: CREATE TABLE `t` ( `id` int(11) NOT NULL, `c` int(11) DEFAULT NULL, `d` int(11) DEFAULT NUL
原创 如何解決幻讀?
現在你知道了,產生幻讀的原因是,行鎖只能鎖住行,但是新插入記錄這個動作,要更新的是記錄之間的“間隙”。因此,爲了解決幻讀問題,InnoDB 只好引入新的鎖,也就是間隙鎖 (Gap Lock)。 顧名思義,間隙鎖,鎖的就是兩個值之間
原创 DNS多級緩存系統
DNS基礎 DNS,是英文Domain Name System的簡稱,中文稱之爲“域名系統”。互聯網主機之間通信是通過IP地址來互相訪問,IP地址是十進制數,比如10.11.10.235,但這樣的數字串對人類來說很難理解和記憶。於是,人們
原创 maven project和maven pom
Type 選擇的時候 maven project 和maven pom 有什麼區別? 選擇project的話,它會幫你生成整個完整的工程結構; 選擇pom的話,它只會在工程目錄下生成pom.xml,而沒有src等等結構
原创 服務發現追求CP還是AP?
服務發現 生產環境中服務提供者對外提供服務,集羣裏面得ip隨時再發生改變,那麼就需要一個“通訊錄”隨時去獲取服務節點,那麼這個就是服務發現 爲什麼需要服務發現 對於服務提供者來說,契約就是接口,也就是相當於通訊錄中得名字,服務節點就是提供
原创 因爲需要啓動時load數據到內存,重啓數據庫很慢
我在做貼吧系統的時候,每次訪問頁面都要請求一次權限。所以,這個請求權限的請求, 訪問概率會非常高,不可能每次都去數據庫裏查,怎麼辦呢? 我想了個簡單的方案:在應用程序裏面開了個很大的內存,啓動的時候就把整張表全部 load 到內存裏去。
原创 爲什麼JSON佔用額外開銷大
這個就相對於二進制文件佔用內存少來說的。 文本文件:是基於字符編碼的文件,常見的編碼有ASCII編碼,UNICOD。 ASCII:是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言。它是最通用的信息交換標準,並等同於國
原创 Spring的註解使用
直接上代碼,代碼中有註釋 AspectJ.java package com.wemew.wmgame.spring_mybatis.config; import org.aspectj.lang.annotation.Aspect;
原创 binlog_format=row不生效
binlog 有兩種格式,一種是 statement,一種是row。可能你在其他資料上還會看到有第三種格式,叫作 mixed,其實它就是前兩種格式的混合。 查看當前的格式: show VARIABLES like '%binlog