亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Redis在外勤通系統(tǒng)高速緩存中的應(yīng)用研究

        2014-07-02 18:04:45李彬朱亞興
        無線互聯(lián)科技 2014年1期

        李彬 朱亞興

        摘 要:本文基于Redis的高速緩存機制在外勤通系統(tǒng)中的應(yīng)用進行了研究,詳細說明了Redis這個高速緩存數(shù)據(jù)庫的支持持久化,豐富的數(shù)據(jù)結(jié)構(gòu),主從復(fù)制以及Virtual Memory功能等特性。

        關(guān)鍵詞:Redis;Memcached;高速緩存

        1 引言

        在低碳經(jīng)濟的時代背景下,全球各大行業(yè)都在尋求節(jié)能、環(huán)保、高效的管理模式。這既是保證企業(yè)正常生產(chǎn)經(jīng)營,實現(xiàn)公司健康可持續(xù)發(fā)展的長久之計,也是企業(yè)適應(yīng)市場需要,降低成本,增加效益,改善環(huán)境,提高企業(yè)競爭力的必要選擇。我們開發(fā)的外勤通系統(tǒng)就是遵循綠色辦公的宗旨,為所有具有外巡,外服的戶外工作業(yè)務(wù)的中小企業(yè)降低成本,企業(yè)初期零投入,不需服務(wù)器、系統(tǒng)研發(fā)等軟硬件投入;將定位技術(shù)與智能手機客戶端相結(jié)合,利用運營商的GSM/WCDMA等無線網(wǎng)絡(luò),為企業(yè)提供對外勤人員實時、精準(zhǔn)的管理手段。企業(yè)能隨時掌握在外工作人員的具體位置和行走軌跡,同時實現(xiàn)考勤簽到、快速審批、位置標(biāo)注、語音群聊,數(shù)據(jù)上報,區(qū)域預(yù)警,更好地進行地理化分析、業(yè)績審視,改變傳統(tǒng)的辦公模式,實現(xiàn)無紙化和移動化辦公,快速響應(yīng)客戶需求和有效管理員工,管理更加方便和人性化,深度鞏固企業(yè)在市場中主體地位和增強企業(yè)核心競爭力。

        外勤通系統(tǒng)在給所有客戶帶來方便的同時,也需要面對網(wǎng)站訪問量漸增大、內(nèi)容不斷豐富和用戶期望值不斷提高,用戶應(yīng)用需要提供更快的訪問速度和承受更大的負荷量,所有這些都依賴于網(wǎng)站服務(wù)器的基礎(chǔ)設(shè)施,擴展服務(wù)器或者鏡像服務(wù)器是一個基本的解決方案,但擴展服務(wù)器會增加大量的運行維護工作,同時增加了運營成本,為了解決這個問題高速緩存服務(wù)器Cache不失為一個較好的解決方案,本文主要介紹開源內(nèi)存數(shù)據(jù)庫Redis在高速緩存方面的的特性及其應(yīng)用。

        2 Redis

        2.1 Redis簡介

        Redis是一個基于內(nèi)存的高性能key/value數(shù)據(jù)庫[1],全名為遠程字典服務(wù)(Remote Dictionary Server),與Memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中,也可以這樣說Redis就是用空間來換取時間,從而達到提高響應(yīng)速度的目的。Memcached是一個免費開源的、高性能的、具有分布式內(nèi)存對象的緩存系統(tǒng),它通過減輕數(shù)據(jù)庫負載加速動態(tài)Web應(yīng)用。目前全球很多用戶都在使用它來構(gòu)建自己的大負載網(wǎng)站或提高訪問量超大網(wǎng)站的響應(yīng)速度[1]。相對于Redis來說,Memcached具有協(xié)議簡單,便捷的libenent事件處理,內(nèi)存管理方式的高效性,以及互不通信的分布式等特性。

        Redis與Memcached的最大區(qū)別是Redis會周期性把更新的數(shù)據(jù)備份到磁盤上或者把修改操作寫入記錄文件,并在此基礎(chǔ)上實現(xiàn)了主從同步。Redis很大程度補償了Memcached鍵值存儲的不足,在部分場合對關(guān)系數(shù)據(jù)庫起到很好的補充作用。Redis提供了更豐富的數(shù)據(jù)類型,如字符串(String),鏈表(List)、集合(Set)、有序集合(Zset)、哈希(Hash)等。

        2.2 Redis的特性

        Redis和Memached都是C/S結(jié)構(gòu)的遠程Cache實現(xiàn),它們都可以作為緩存,但是Redis又有自己獨特的地方。這里重點講解Redis區(qū)別于Memcached的特征。

        2.2.1 支持持久化

        Redis和Memeache一樣都是把數(shù)據(jù)全部存在內(nèi)存中,但是Redis會根據(jù)數(shù)據(jù)的更新量和更新間隔時間定期進行異步更新,將數(shù)據(jù)保存在磁盤上,實現(xiàn)數(shù)據(jù)的持久化操作。另外也可以通過配置redis.conf文檔配置持久化操作的時間間隔和臨界數(shù)據(jù)量,這樣Redis就自動在一定的時間間隔和數(shù)據(jù)超過臨界值時進行持久化操作。如果在Redis 宕機或者突然斷電的情況下,保存在Redis中的數(shù)據(jù)還是會丟失,所以Redis還提供了一種附加檔案功能AOF[2]。

        通過把redis.cong中的appendonly屬性設(shè)置為“yes”來使用AOF功能,配置好AOF之后Redis每次接受到持久化命令時,就會將命令添加在配置文檔中,重新啟動Redis時,配置文檔中的指令會重新執(zhí)行,從而達到恢復(fù)Redis數(shù)據(jù)庫的狀態(tài)。

        2.2.2 豐富的數(shù)據(jù)結(jié)構(gòu)

        Redis的數(shù)據(jù)結(jié)構(gòu)非常豐富,Redis支持簡單的key/value類型數(shù)據(jù),其中Key是String類型,而value除了常規(guī)的String之外,還包括list,set,zset,hash等。這些新的屬性都是在Redis2.0中才有。Redis對所有的數(shù)據(jù)類型都提供 push/pop、add/remove、執(zhí)行服務(wù)端的并集、交集等功能,這些操作都是具有原子性的,它還支持各種不同的排序能力[1]。

        2.2.3 支持主從復(fù)制

        Redis的主從復(fù)制可以通過配置redis.conf文件中的Replication字段來實現(xiàn),Redis的主從復(fù)制具有如下特點:

        (1)支持多級主從(master/slave),即一個主服務(wù)器可以連接多個從服務(wù)器

        (2)從服務(wù)器可以再連接其他的從服務(wù)器

        (3)主服務(wù)器和從服務(wù)器同步的數(shù)據(jù)復(fù)制是非阻塞的

        其中利用Redis的主從復(fù)制特性,可以實現(xiàn)以下功能:

        (1)實現(xiàn)讀寫分離,如用主服務(wù)實現(xiàn)讀操作,從服務(wù)實現(xiàn)寫操作。

        (2)備份數(shù)據(jù),利用主從服務(wù)器的方便性來備份,專門做臺從服務(wù)器用于備份功能。

        2.2.4 Virtual Memory功能

        由于Redis受到了物理內(nèi)存的限制,數(shù)據(jù)庫的容量有限,對于海量數(shù)據(jù)的高性能讀寫并不適合。Virtual Memory的功能就是為了解決這個問題而生,Virtual Memory功能也是Redis 2.0新增的功能,目的就是為了提高Redis對海量數(shù)據(jù)的高性能讀寫能力,它把很少使用的value保存再磁盤中,而只把key存在內(nèi)存中,從而達到提高系統(tǒng)性能的目的。

        3 Redis的應(yīng)用

        隨著外勤通系統(tǒng)客戶量不斷增加,每天客戶上傳和請求的數(shù)據(jù)量也是呈幾百,幾千倍的增加,面對不斷增加的龐大信息量數(shù)據(jù)庫的負擔(dān)越來越重,單純的靠增加服務(wù)器的數(shù)量所產(chǎn)生的運營和維護費用又特別大,而在速度就是市場的互聯(lián)網(wǎng)時代,快速相應(yīng)是一個不變的需求。Redis由于其豐富數(shù)據(jù)結(jié)構(gòu),良好的性能,優(yōu)良的數(shù)據(jù)持久化能力占領(lǐng)了越來越大市場。我們的外勤通系統(tǒng)也引入了對Redis的應(yīng)用。

        Redis在外勤通系統(tǒng)中的應(yīng)用主要表現(xiàn)在一下幾個方面:

        ⑴在應(yīng)用集群中,作為中央會話,保存web中會話,保存終端鑒權(quán)后的token,通過鑒權(quán)之后不同的用戶登錄就展示不同的功能模塊。

        save(String key, String value, Integer seconds){

        Jedis jedis = null;

        try {

        jedis=(Jedis) pool.getResource();

        jedis.set(key, value);

        jedis.expire(key, seconds);

        } catch (Exception e) {

        e.printStackTrace();

        }finally{

        pool.returnResource(jedis);

        }

        }

        ⑵在通信中,作為發(fā)布訂閱隊列使用,web 發(fā)布消息,進入Redis 發(fā)布訂閱頻道,通信中心消費此頻道消息,所有的信息發(fā)布都在Redis中進行,從而提高了響應(yīng)的速度。

        public boolean sendMsg(String msg){

        boolean rebool = true;

        Jedis jedis = null;

        try {

        jedis=(Jedis) pool.getResource();

        jedis.publish("kingfisher.*", msg);

        } catch (Exception e) {

        e.printStackTrace();

        rebool = false;

        }finally{

        pool.returnResource(jedis);

        }

        return rebool;

        }

        ⑶在重發(fā)消息以及離線消息的集合索引和隊列,保證在終端關(guān)機或者不在服務(wù)區(qū)范圍內(nèi)沒有接受到的信息有一個重發(fā)機制,Redis中會保存近100小時之內(nèi)的用戶信息,從而實現(xiàn)快速轉(zhuǎn)發(fā),超過100小時會自動清空Redis。

        def sended(mobile,msgstr,msg):

        row = MysqlDao().findClient(mobile)

        if row is not None:

        pool = MyRedis.getPool()

        r = redis.Redis(connection_pool=pool)

        r.sadd('sended_%s' % mobile,msg.bid)

        r.set('s_msg_%s' % msg.bid,msgstr)

        r.expire('s_msg_%s' % msg.bid,36000) #超過100小時不再為客戶端保留信息

        ⑷應(yīng)用MONGODB附近位置的檢索

        ⑸應(yīng)用mongodb gridFS=對文件中轉(zhuǎn)(PC ANDROID IOS)

        ⑹應(yīng)用mongodb mapreduce并行計算,用戶從redis中調(diào)度生成當(dāng)天用戶訪問行為,調(diào)度生成當(dāng)天服務(wù)運行行為以及調(diào)度生成當(dāng)天小時行為。

        4 展望

        外勤通系統(tǒng)由于其通用,高效,低碳等特點自推出以來就備受關(guān)注,現(xiàn)在外勤通的客戶群已經(jīng)達到了2000多人,隨著客戶的不斷增加,服務(wù)器的壓力也越來越大,引入了Redis之后系統(tǒng)的響應(yīng)速度大大提高。但是隨著外勤通系統(tǒng)版本的不斷升級,客戶群的持續(xù)增加數(shù)據(jù)庫的壓力還是一個潛在的問題,為了更好的滿足客戶的需求,對服務(wù)器的優(yōu)化將是一個長期的工作。

        [參考文獻]

        [1]王心妍.emcached和Redis在高速緩存方面的應(yīng)用[J].無線互聯(lián)科技,2012(9).

        [2]楊艷,李煒,王純.內(nèi)存數(shù)據(jù)庫在高速緩存方面的應(yīng)用[J].現(xiàn)代電信科技,2011(12).

        亚洲中文字幕无码专区| 亚洲最大中文字幕在线| 久久亚洲日韩精品一区二区三区| 欧美国产亚洲日韩在线二区| 性一交一乱一乱一视频| 亚洲中文无码久久精品1| 久久午夜伦鲁鲁片免费| 一区二区三区午夜视频在线 | 无码手机线免费观看| 亚洲av无码一区二区乱子仑| 伊人久久综合狼伊人久久| 音影先锋中文字幕在线| 久久久久人妻精品一区蜜桃| 亚洲日韩一区二区一无码| 亚洲国产精品成人av| 美女脱了内裤露出奶头的视频| 人妻少妇精品视频三区二区一区 | 久久亚洲av无码西西人体| 又污又黄又无遮挡的网站| 亚洲综合国产精品一区二区99| 人妻系列无码专区久久五月天| 久久亚洲春色中文字幕久久久综合 | 99ri国产在线观看| 国产av一区仑乱久久精品| 看日本全黄色免费a级| 国产69精品久久久久999小说| 国产精品久免费的黄网站| 精品一区二区三区中文字幕在线| 亚洲熟女av在线观看| 国产放荡对白视频在线观看| 国产亚洲精品aaaa片app| 91久久精品国产性色tv| 亚洲av不卡一区男人天堂| 99久久国产综合精品五月天| 国产精品美女AV免费观看| 成人自拍偷拍视频在线观看| 射精专区一区二区朝鲜| 国产精品无码精品久久久| 超短裙老师在线观看一区二区| 青青草免费在线爽视频| 99精品国产一区二区三区a片 |