原创 Myisam和Innodb索引的區別從存儲結構

myisam和innodb索引實現的不同   MyISAM引擎使用B+Tree作爲索引結構,葉節點的data域存放的是數據記錄的地址。下圖是MyISAM索引的原理圖:   這裏設表一共有三列,假設我們以Col1爲主鍵,則上圖是一個MyI

原创 關於hashmap的深入-hashmap產生死鎖的詳解

前言 幾個月前,上線了一個版本。但是上線了幾個小時之後 CPU 突然暴增至99%,在網上搜了一下,多半是因爲出現死循環問題了。就用 jstack dump 了當時的線程快照,發現這次死循環問題的起源是 HashMap 的 get()方法。

原创 一致性Hash算法原理

一、前言 在解決分佈式系統中負載均衡的問題時候可以使用Hash算法讓固定的一部分請求落到同一臺服務器上,這樣每臺服務器固定處理一部分請求(並維護這些請求的信息),起到負載均衡的作用。 但是普通的餘數hash(hash(比如用戶id)%服務

原创 緩存穿透、緩存擊穿、緩存雪崩區別及其解決方案

一、緩存處理流程       前臺請求,後臺先從緩存中取數據,取到直接返回結果,取不到時從數據庫中取,數據庫取到更新緩存,並返回結果,數據庫也沒取到,那直接返回空結果。          二、緩存穿透        描述:        

原创 初探nginx架構

初探nginx架構(100%) 衆所周知,nginx性能高,而nginx的高性能與其架構是分不開的。那麼nginx究竟是怎麼樣的呢?這一節我們先來初識一下nginx框架吧。 nginx在啓動後,在unix系統中會以daemon的方式在後臺

原创 多線程實例二----兩個人同時存取錢

java 多線程簡單實例二----兩個人同一個賬戶取錢 思路:兩個線程,一個代表取錢的操作,一個代表存錢的操作,互相不影響,但是要保證存取的數據正確。 代碼如下: package com.shone.thread.getmoney; /

原创 IOS中Json解析的四種方法

作爲一種輕量級的數據交換格式,json正在逐步取代xml,成爲網絡數據的通用格式。 有的json代碼格式比較混亂,可以使用此“http://www.bejson.com/”網站來進行JSON格式化校驗(點擊打開鏈接)。此網站不僅可以檢測J

原创 UILabel添加點擊事件

爲UILable添加點擊事件,首先必須設置UILabel的userInteractionEnabled = YES,添加的點擊事件纔會有效,否則無效。 首先設置label1和label2兩個屬性,這裏label1的點擊原理是判斷點擊的座

原创 多線程實例三----多生產者多消費者(模擬kfc多生產和多消費)

KFC中,同時有多個產者生產漢堡,也有多個消費者消費漢堡,當生產到100個剩餘時,就暫停生產;當銷售到0個時,就暫停銷售。此例子就是簡單的多生產和多消費問題,跟有些多生產多消費例子不同的是其他的基本上是生產一個漢堡就喚醒消費者消費,生成一

原创 java單例模式的實現方式

單例模式的六種實現方式,代碼註釋比較詳細,不多說,請看詳細代碼 一、餓漢模式/立即加載模式 /** * Created by Xiao GuoJian on 2018/1/25. * 立即加載/餓漢模式 * 此模式是在類被加載的時候

原创 Mac終端中上傳文件到Linux服務器

Mac將本地文件上傳到服務器上 scp -P 22 /Java/program.war [email protected]:/usr/server/tomcat7/webapps/ 上端口大寫P 爲參數,22 表示更改SSH端口後的

原创 用NSFileHandle實現文件的斷點續傳

斷點續傳:複製或者下載一個文件到某一個位置停止,下次接着原來的部分下載 //複製一個文件中的指定的內容到另外一個文件中 void copyFileContentToAnotherFileUnderControl(){ NSSt

原创 阿里雲配置nginx多域名指向

我的阿里雲默認在服務器的/alidata/server/nginx中; 因爲nginx中的conf文件夾中的nginx.conf文件配置默認指向的是vhosts文件夾下的所有*.conf文件都有效,所有隻要複製default.conf文件

原创 linux下mysql的root密碼忘記解決方法

1.首先確認服務器出於安全的狀態,也就是沒有人能夠任意地連接MySQL數據庫。 因爲在重新設置MySQL的root密碼的期間,MySQL數據庫完全出於沒有密碼保護的 狀態下,其他的用戶也可以任意地登錄和修改MySQL的信息。可以採

原创 IOS基礎:深入理解Objective-c中@class和#import的使用區別

objective-c中,當一個類使用到另一個類時,並且在類的頭文件中需要創建被引用的指針時,   如下面代碼:   A.h文件 #import "B.h"    @interface A : NSObject {         B