<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      針對緩存在Redis中的聊天消息的持久化方案分析

      選型依據(jù)

      數(shù)據(jù)庫的選型主要考慮一下幾個方面:

      • 數(shù)據(jù)庫本身是否收費
      • 數(shù)據(jù)庫后期維護成本
      • 是否支持水平及垂直擴展,及擴展的容易程度
      • 業(yè)務數(shù)據(jù)本身特性
      • 使用此數(shù)據(jù)庫的開發(fā)成本

      由于此數(shù)據(jù)庫主要用來存儲緩存在redis中的用戶發(fā)送的消息,對用戶發(fā)送的消息進行持久化,主要用作以后的分析與查找,本身業(yè)務價值不大。redis數(shù)據(jù)的存儲方式為 key-value。本來通過對常用的關系型數(shù)據(jù)庫與非關系型數(shù)據(jù)庫進行對比分析,選擇適合本業(yè)務需求的最佳數(shù)據(jù)庫。

      關系型數(shù)據(jù)庫

      對關系型數(shù)據(jù)庫的分析主要分析SqlServer 、Oracle、MySql

      Sql Server

      SQLServer只能在windows上運行,所以不做考慮。

      Oracle

      優(yōu)點

      1. 引入了共享SQL和多線索服務器體系結構。這減少了ORACLE的資源占用,并增強了ORACLE的能力,使之在低檔軟硬件平臺上用較少的資源就可以支持更多的用戶
      2. 提供了基于角色(ROLE)分工的安全保密管理。在數(shù)據(jù)庫管理功能、完整性檢查、安全性、一致性方面都有良好的表現(xiàn)。
      3. 支持大量多媒體數(shù)據(jù),如二進制圖形、聲音、動畫以及多維數(shù)據(jù)結構等。
      4. 提供了新的分布式數(shù)據(jù)庫能力。可通過網(wǎng)絡較方便地讀寫遠端數(shù)據(jù)庫里的數(shù)據(jù),并有對稱復制的技術。

      缺點

      1. 費用較高
      2. 管理維護成本高
      3. 對硬件的要求很高
      4. 對管理員經(jīng)驗、經(jīng)驗要求很高
      5. 數(shù)據(jù)庫崩潰后恢復比較困難

      MySql

      優(yōu)點

      1. Mysql是免費開源的
      2. Mysql是可以定制的,采用了GPL協(xié)議,你可以修改源碼來開發(fā)自己的Mysql系統(tǒng)
      3. MySQL不僅能夠作為一個單獨的應用程序應用在客戶端服務器網(wǎng)絡環(huán)境中,也能作為一個庫而嵌入到其他的軟件中
      4. 支持多線程,使CPU資源得到充分利用
      5. 支持特大型的數(shù)據(jù)庫。
      6. 使用C和C++編程語言編寫,且可以使用多種編譯器進行測試,保證源代碼的可移植性,安裝簡單小巧
      7. 提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具

      缺點

      1. MySQL在穩(wěn)定性和集群方面存在一些問題。除非使用收費版本
        image.png
      2. 完全免費的MySQL安裝集群式非常困難的。
      3. 當表數(shù)據(jù)非常大時,修改表數(shù)據(jù)結構會鎖定整個表結構

      非關系型數(shù)據(jù)庫

      由于chat的業(yè)務需求為持久化緩存在resis中的用戶交互信息。因此詳細介紹面向文檔的數(shù)據(jù)庫 MongoDB,MongoDB中的文檔類似于JSON對象。

      什么是MongoDB

      MongoDB是一個基于分布式文件存儲的開源數(shù)據(jù)庫系統(tǒng)。在高負載的情況下,添加更多的節(jié)點,可以保證服務器性能。MongoDB旨在為WEB應用提供可擴展的高性能數(shù)據(jù)存儲解決方案。MongoDB將數(shù)據(jù)存儲為一個文檔,數(shù)據(jù)結構有鍵值(key=>value)對組成。MongoDB文檔類似于JSON對象。字段值可以包含其他文檔,數(shù)組及文檔數(shù)組。
      image.png

      MongoDB的功能

      1. MongoDB可以實現(xiàn)范圍查詢、數(shù)據(jù)集包含查詢、不等式查詢,以及其他一些查詢。
      2. 可以通過MongoDB對數(shù)據(jù)進行分析并加以利用,MongoDB提供的聚合工具有:聚合框架、MapReduce、及幾個簡單的聚合命令:count、distinct和group
      3. 副本集 (將數(shù)據(jù)副本保存到多臺服務器上)
      4. 自動分片(類似于關系型數(shù)據(jù)庫的分表)
      5. MongoDB除支持MySQL的常用索引外,還支持TTL索引
      6. 自動清除:MongoDB還提供了受限集合,當受限集合到達上限時,舊文檔會被自動清除。如果想讓基于時間而不是整個集合的大小,可以用TTL索引
      7. 內(nèi)置GridFS ,支持大容量存儲(GridFS是一個出色的分布式文件系統(tǒng),可以支持海量的數(shù)據(jù)存儲)

      MongoDB 的優(yōu)勢

      1. 寫入高性能:存儲引擎使用的內(nèi)存映射文件(MMAP的方式),將內(nèi)存管理工作交給操作系統(tǒng)去處理。MMAP的機制,數(shù)據(jù)的操作寫內(nèi)存即是寫磁盤,在保證數(shù)據(jù)一致性的前提下,提供了較高的性能。
      2. 易于擴展:MongoDB支持自動分片(分片就是講數(shù)據(jù)拆分,將其分散存放在不同機器上的過程)。MongoDB自動處理數(shù)據(jù)在分片上的分布,也更容易添加和刪除分片。
      3. 對非事務安全,MongoDB很適合業(yè)務系統(tǒng)中有大量“低價值”數(shù)據(jù)的場景
      4. 無模式(不像關系型數(shù)據(jù)庫,先定義表結構)

      不適合使用MongoDB的場景

      1. MongoDB不支持事務,對事務性有要求的應用程序不建議使用MongoDB
      2. 在多個不同緯度上對不同類型的數(shù)據(jù)進行關聯(lián),這是關系型數(shù)據(jù)庫最擅長的事情。

      MongoDB 成功應用場景(舉例如下)

      1. MongoDB在58同城百億量級數(shù)據(jù)下的應用實踐
      2. Telefonica(西班牙電信公司) 如何使用MongoDB 幫助數(shù)字化業(yè)務高速增長。
      3. eHarmony使用MongoDB技術將匹配算法縮短到95%
      4. SAP SAP Lumira
        參考文檔:
        https://www.mongodb.com/use-cases
        https://docs.mongodb.com/?_ga=2.2211824.1331207551.1498467881-1886999231.1498467881
        http://www.infoq.com/cn/articles/app-practice-of-mongodb-in-58-ten-billion-scale-data

      結論

      通過以上的對比分析,我們在MySql 和 MongoDB中選擇適合我們的數(shù)據(jù)庫。

      數(shù)據(jù)庫類型是否收費集群搭建數(shù)據(jù)存儲業(yè)務關聯(lián)是否支持事務
      MySql 免費開源 免費開源搭建集群非常困難,MySql集群收費 以行、列形式存儲 支持多表關聯(lián) 支持事務
      MongoDB 免費開源 集群搭建非常容易,并自持自動分片 以類似于JSON的形式存儲,非常適合web開發(fā) 不支持表關聯(lián) 不支持事務

      業(yè)務場景數(shù)據(jù)

      • redis 中的緩存數(shù)據(jù),key-value,轉換成 json格式的文本非常容易。因此選擇MongoDB
      • redis 中緩存的用戶消息,是 非事務型數(shù)據(jù)。因此選擇 MongoDB
      • redis 中的數(shù)據(jù)本身是NoSql ,因此也 不支持關聯(lián)查詢。因此 選擇 MongoDB
      • 由于要持久化redis中的用戶消息數(shù)據(jù),數(shù)據(jù)量比較大,寫頻繁。因為 MongoDB的底層實現(xiàn)采用內(nèi)存映射機制,因此非常適合大并發(fā)量的寫。
      • 由于用戶的消息量非常大,因此要很方便的支持水平擴展。MongoDB的對水平擴展的支持非常好,并且支持自動分片。因此選擇MongoDB

      通過以上分析:選擇MongoDB作為chat消息的持久化

      posted @ 2018-02-28 21:49  ridox  閱讀(2098)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 靖安县| 国产成人一区二区三区视频免费| 国产va免费精品观看| 欧美韩中文精品有码视频在线 | 久久久天堂国产精品女人| 亚洲一区在线成人av| 免费特黄夫妻生活片| 欧美大香线蕉线伊人久久| 中文字幕 日韩 人妻 无码| 国产人妻丰满熟妇嗷嗷叫| 乱码精品一区二区亚洲区| 欧洲性开放老太大| 国产精品中文字幕日韩| 亚洲中文字幕无码爆乳| 无码精品人妻一区二区三区中| 波多野结衣的av一区二区三区| 熟女视频一区二区三区嫩草| 少妇人妻偷人精品免费| 久久亚洲精品日本波多野结衣| 丁香五月亚洲综合在线国内自拍| 国产精品一区二区久久精品| 婷婷伊人久久| 少妇高潮喷水正在播放| 亚洲精品久久久久久无码色欲四季 | 无遮挡aaaaa大片免费看| 久久无码高潮喷水| 亚洲欧美日韩综合久久| 精品无码专区久久久水蜜桃| 不卡一区二区三区四区视频| 亚洲日韩久热中文字幕| 中文字幕av无码不卡| 熟女系列丰满熟妇AV| 国产精品久久无码不卡黑寡妇| 精品一区二区三区四区五区| 武装少女在线观看高清完整版免费| 九九热精品在线免费视频| 国产视频最新| 亚洲成熟女人av在线观看| 久久精产国品一二三产品| 欧美一区二区| 97久久精品人人做人人爽|