1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      Redis的使用模式之計(jì)數(shù)器模式實(shí)例-創(chuàng)新互聯(lián)

      轉(zhuǎn)載于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/123.html?1455853785

      為華亭等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及華亭網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、華亭網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

      Redis 是目前 NoSQL 領(lǐng)域的當(dāng)紅炸子雞,它象一把瑞士***,小巧、鋒利、實(shí)用,特別適合解決一些使用傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)難以解決的問題。打算寫一系列 Redis 使用模式的文章,深入總結(jié)介紹 Redis 常見的使用模式,以供大家參考。

      常見匯總計(jì)數(shù)器

      匯總計(jì)數(shù)是系統(tǒng)常見功能,比如網(wǎng)站通常需要統(tǒng)計(jì)注冊(cè)用戶數(shù),網(wǎng)站總瀏覽次數(shù)等等。 使用 Redis 提供的基本數(shù)據(jù)類型就能實(shí)現(xiàn)匯總計(jì)數(shù)器,通過 incr 命令實(shí)現(xiàn)增加操作。

      比如注冊(cè)用戶數(shù),基本操作命令如下:

      代碼如下:

       # 獲取注冊(cè)用戶數(shù)
       get total_users
       # 注冊(cè)用戶數(shù)增加一位
       incr total_users

      按時(shí)間匯總的計(jì)數(shù)器

      通常計(jì)數(shù)還要按時(shí)間統(tǒng)計(jì),比如注冊(cè)用戶數(shù)需要按日統(tǒng)計(jì),處理方法比較簡(jiǎn)單,把日期帶入計(jì)數(shù)器 key 就可以。

      還是注冊(cè)用戶計(jì)數(shù)的例子,基本操作命令如下:

      代碼如下:

      # 假定操作 2014-07-06 數(shù)據(jù)
       # 獲取注冊(cè)用戶數(shù)
       get total_users:2014-07-06
       # 2014-07-06 注冊(cè)用戶數(shù)增加一位
       incr total_users:2014-07-06
       # 設(shè)置 48 小時(shí)過期時(shí)間 172800 = 48 * 60 * 60
       expire total_users:2014-07-06 172800

      為計(jì)數(shù)器設(shè)置一個(gè) 48 小時(shí)的過期時(shí)間是為了節(jié)省計(jì)數(shù)器占用空間,畢竟 redis 是內(nèi)存數(shù)據(jù)庫(kù),可以在過期前執(zhí)行一個(gè)任務(wù)把計(jì)數(shù)器存入關(guān)系數(shù)據(jù)庫(kù)。

      速度控制

      速度控制也是 Redis 一種常見的計(jì)數(shù)用途,比如有一個(gè) API 服務(wù),希望控制每一個(gè) IP 每秒請(qǐng)求數(shù)不超過 10 次,可以用 IP 和 時(shí)間秒作為 key 設(shè)置一個(gè)計(jì)數(shù)器,實(shí)現(xiàn)控制,偽代碼如下所示:

      代碼如下:

       # 每秒大請(qǐng)求數(shù)
       MAX_REQUESTS_PER_SECOND = 10

       # 檢查 ip 請(qǐng)求限制
       # @param ip
       # @raise 超過限制,拋出 RuntimeError 異常

       def check_request_limitation_for_ip(ip)
         time_tick = Time.now.to_i
         key = "#{ip}:#{time_tick}"
         num = $redis.get(key).to_i
         if num > MAX_REQUEST_PER_SECOND
           raise 'too many requests'
         else
           $redis.incr(key)
           $redis.expire(key, 10)
         end
       end

      使用 Hash 數(shù)據(jù)類型維護(hù)大量計(jì)數(shù)器

      有時(shí)候需要維護(hù)大量計(jì)數(shù)器,比如每一個(gè)論壇主題的查看數(shù),比如每一個(gè)用戶訪問頁(yè)面次數(shù),因?yàn)檎搲黝}和用戶基數(shù)可能很大,直接基于論壇主題或用戶 ID 生成計(jì)數(shù)器的話,占用 Redis 資源還是相當(dāng)可觀的,這時(shí)可以用 Hash 數(shù)據(jù)類型壓縮所需資源。

      比如,對(duì)應(yīng)論壇主題查看計(jì)數(shù),可以由模式

      代碼如下:

       key: topic::views
       value: view count (integer)

      轉(zhuǎn)換為模式:

      代碼如下:

       key: topic:views
       value: hash
         hash key:
         hash value: view count (integer)

      總結(jié):利用 Redis 實(shí)現(xiàn)計(jì)數(shù)器,可以簡(jiǎn)單高效實(shí)現(xiàn)各種計(jì)數(shù)功能

      另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


      網(wǎng)站欄目:Redis的使用模式之計(jì)數(shù)器模式實(shí)例-創(chuàng)新互聯(lián)
      URL地址:http://ef60e0e.cn/article/pijcj.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        丁青县| 吴江市| 化德县| 宽城| 项城市| 英吉沙县| 宁武县| 大城县| 江永县| 勐海县| 清远市| 启东市| 台前县| 东源县| 海宁市| 新河县| 兰西县| 惠州市| 伊金霍洛旗| 鄄城县| 章丘市| 海淀区| 德惠市| 鹰潭市| 龙游县| 松溪县| 申扎县| 滦平县| 大石桥市| 苏尼特右旗| 聊城市| 屏边| 吉水县| 西丰县| 舒城县| 右玉县| 盖州市| 颍上县| 花垣县| 牙克石市| 衡阳县|