發表文章

目前顯示的是有「2018鐵人賽」標籤的文章

IT|資料庫|PostgreSQL 安裝於 Mac OS、Ubuntu Linux

圖片
PostgreSQL 介紹 PostgreSQL 是以加州大學伯克利分校計算機系開發的 POSTGRES 版本 4.2 為基礎的對象關係型數據庫管理系統( ORDBMS ), 簡稱  pgsql, 是一個自由的對象 - 關係數據庫服務器 , 由社區驅動的的對象 - 關係型 數據庫系統 , 它支持大部分 SQL 標準並且提供了許多其他現代特性 , 它在靈活的 BSD- 風格許可證下發行 . 越來越多的人用它來取代 mysql 。 已成為開發首選的開源關係型數據庫 。 安裝 PostgreSQL [ 安裝標的: Mac OS X ] 在 MAC   環境下 ,除了 可以使用 brew 安裝 , 也可以直接從網路下載 安裝檔來 安裝 ,本例以安裝檔作為安裝示範。 1.使用 brew 指令安裝 brew install postgresql 2. 選 擇  Mac OS X 版本下載 ,直接 安裝即可 。( 本例以此為示範 ) PostgreSQL 官網下載地址 系統安裝相關目錄 資料庫系統安裝路徑    /Library/PostgreSQL/10 資料庫安裝路徑  /Library/PostgreSQL/10/data 在安裝的過程中 系統 會自動為生成一個賬號  PostgreSQL, 密碼隨機 。 若需要要重設密碼 ,可透過上面 GUI 介面重設,或透過控制台以指令方式重設 sudo passwd -d postgres #指令說明 password  -d 为删除指定用户密码 設置新密碼 sudo -u postgres passwd 然後就可以用 postgres 用戶在服務器上通過 pgAdmin 或者 psql 來操作資料庫了 。 [ 執行 SOL Shell ] 執行 SQL Shell (psql) 啓動程式 Server [localhost]:    // 第一步, 默認 localhost , ...

IT|程式設計|Front-End|Redis 及 WebSocket 的一個實時消息推送系統

圖片
需求分析    2017-06-12 Mon 後台同時對接了網頁,微信公眾號,iOS 以及 Android客戶端。在某些特定場景下,比如一個用戶接收到其他用戶的提問,我們就需要向這個用戶推送一條消息 (設備狀態)。用戶或者在手機上收到了一條彈窗通知,或者在網頁上看到了消息圖標顯示小紅點 (告警消息)。 公眾號消息推送使用客服接口推送消息。 移動端的消息推送使用國內某些知名的推送平台。在用戶從APP登錄的時候,APP會主動向推送平台設置自己的ID。後台將消息發送到推送平台時指明這個ID即可。 網頁的消息推送一般常見的實現方法有輪詢,長連接,WebSocket等等。在這裡我們使用的是WebSocket 。 消息傳遞的基本流程 後台服務器在某些情況下生成了一條消息, 首先將消息保存到本地數據庫,這樣客戶端可以調用API顯示消息列表。隨後消息被放入任務隊列,任務隊列將消息通過推送平台發送至APP,通過微信公眾號後台發送至用戶微信客戶端。 為了將消息通過WebSocket發送至在線的用戶手中,我們先將消息發佈到 Redis。訂閱了 Redis 的 Node 收到消息,將消息通過 WebSocket 傳遞至與之連接的瀏覽器。 一個大致的消息流如下圖所示: Redis的發佈訂閱機制 所謂的 Publish/Subscribe,可以讓發佈者將消息發佈至某一個 channel,所有訂閱了這個 channel 的訂閱者就可以立即收到這個消息。在 Redis 的發佈訂閱機制裡面,一個消息可以被發佈至多個channel,訂閱者也可以同時訂閱多個channel的消息。 127.0.0.1:6379> subscribe message-channel Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "message-channel" 3) (integer) 1 為了訂閱一個名為 message-channel 的消息,我們可以在 Redis 命令行下執行 127.0.0.1:6379> publish message-channel "Thi...

IT|程式設計|Front-End|Cordova + eclipse

圖片
前言    2017-12-10 週日 談起跨平台手機 Apps,PhoneGap 應該算是最為人熟識的 Framework。 PhoneGap 與 Cordova 的實際差異:按照官方的說法 PhoneGap 是 Cordova 的一個 distribution。 原來是 Adobe 在 2011 年從一家小型公司手上收購了 PhoneGap。然後又把它的 Source Code 捐獻了給 Apache 基金會成為 OSS。但 Adobe 又保留了 PhoneGap Build 這個服務自己獨有。 從此於是乎兩者的關係曖昧不清…按照官方的說法 PhoneGap 是 Cordova 的一個 distribution。 "PhoneGap is a distribution of Apache Cordova. You can think of Apache Cordova as the engine that powers PhoneGap, similar to how WebKit is the engine that powers Chrome or Safari." 實作    2017-12-10 週日  作業系統:Mac [Hello World] 確保 Android SDK 已經有被加入 PATH 環境變數中,在 Mac 上可以加到 ~/.bash_profile 裡面 export ANDROID_HOME=/Users/Kevin/Agile-MAC/Android/android-sdk-macosx 準備 ios build 1.安裝 Xcode 2.安裝 ios-sim、ios-deploy npm install -g ios-sim npm install -g ios-deploy 3.安裝 Node.js 官方建議 用 npm 來安裝 Cordova sudo npm install -g cordova 建立 Hello World 專案 cordova create hello com.errui.hello...

IT|軟體|資料庫|Key-Value|Redis| Cluster 集群伺服器設定

圖片
Redis 集群提供了以下兩個好處 # 將數據自動切分( split )到多個節點的能力。 # 當集群中的一部分節點失效或者無法進行通訊時, 仍然可以繼續處理命令請求的能力。 Redis 架構 架構細節 : (1) 所有的 redis 節點彼此互聯 (PING-PONG 機制 ), 內部使用二進制協議優化傳輸速度和帶寬 . (2) 節點的 fail 是通過集群中超過半數的節點檢測失效時才生效 . (3) 客戶端與 redis 節點直連 , 不需要中間 proxy 層 . 客戶端不需要連接集群所有節點 , 連接集群中任何一個可用節點即可 (4)redis-cluster 把所有的物理節點映射到 [0-16383]slot 上 ,cluster 負責維護 node<->slot<->value Redis Cluster 搭建與使用 要讓集群正常工作至少需要 3 個主節點,在這裡我們要創建 6 個 redis 節點,其中三個為主節點,三個為從節點,對應的 redis 節點的 ip 和端口對應關係如下(為了簡單演示都在同一台機器上面)。 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 [安裝 redis] 研究-Redis 創建存放多個實例的目錄 mkdir /home/pi/data/cluster -p cd /home/pi/data/cluster mkdir 7000 7001 7002 7003 7004 7005 修改配置文件 樹莓派 cp /etc/redis.conf /home/pi/data/cluster/7000/ Linux cp /home/pi/redis-4.0.2/redis.conf /home/pi/data/cluster/7000/ 修改以下選項( 修改完成後,把修改完成的 redis.conf 複製到 7001-7005 目錄下,並且端口修改成和文件夾對應 ): port 7000...