FusionInsight大數據開發---Redis應用開發

Redis應用開發

要求:數據庫

  1. 瞭解Redis應用場景
  2. 掌握Redis二次開發環境搭建
  3. 掌握Redis業務開發

Redis簡介後端

  • Redis是一個基於網絡的,高性能key-value內存數據庫
  • Redis根memcached相似,不過數據可持久化,並且支持的數據類型很豐富。支持在服務端計算集合的並、交和補集等,還支持多種排序功能。

Redis使用場景有以下幾個特色:緩存

  1. 高性能
  2. 低延遲
  3. 豐富數據結構存取
  4. 支持持久化

Redis應用場景介紹
Redis提供了靈活多變的數據結構和數據操做,主要應用於以下場景:安全

  1. 取最新N個數據的操做,好比典型的取某網站的最新文章。
  2. 排行榜應用,取TOP N操做。
  3. 須要精準設定過時時間的應用。
  4. 計數器應用,好比記錄用戶訪問網站的次數。
  5. 構建隊列系統
  6. 緩存,如緩存關係數據庫中的頻繁訪問的表數據。

架構回顧網絡

  1. 無中心自組織的結構,節點之間使用Gossip協議來交換節點狀態信息。
  2. 個節點維護Key->Server的映射關係。
  3. Client能夠向任意節點發起請求,節點不會轉發請求,只是重定向Client
  4. 若是在Client第一次請求之間,Cluster拓撲發生改變,則第二次重定向請求將被再次重定向,直到找到正確的Server爲止。

Redis應用開發
設計Redis數據結構數據結構

  1. 取最新N個數據的操做:list
  2. 排行榜應用,取TOP N操做。以某個條件爲權重,好比按頂的次數排行:sorted set。
  3. 利INCR,DECR命令來構建計數器系統。、
  4. Uniq操做,獲取某段時間全部數據排重值:set。
  5. 使用list能夠構建隊列系統

Redis應用開發
根據場景開發工程架構

  1. 梳理業務場景流
  2. 設計各模塊接口
  3. 若是使用的是安全集羣,須要進行安全認證
  4. 熟悉Redis提供的相應API
  5. 調用業務須要的API實現各功能

數據結構設計app

  • 計算過程當中使用的用戶信息使用hash結構存取,KEY設計爲userinfo-<user id>,
  • field爲用戶的屬性。

數據讀寫原則memcached

  • MR任務天天定時將用戶信息從後端存儲源(HBase)批量導入Redis中。
  • 業務系統獲取數據時,先從Redis中獲取,獲取不到再取後端HBase獲取即實時計算,並同步寫入到Redis。

樣例說明-String類型操做性能

  1. set:將字符串值value關聯到key
  2. get:返回key所關聯的字符串值,
  3. setex:將字符串值value關聯到key,並設置key的生存時間
  4. append:將value追加到key原值的末尾,相似Java String類型的「+」操做。

樣例說明-List類型操做

  1. Ipush/rpush:往列表頭/尾添加一個元素。
  2. Irange:返回列表中start至end之間的元素
  3. llen:返回列表的長度
  4. lpop/rpop:從列表頭/尾獲取一個元素,並將其中列表中刪除。

樣例說明-Hash類型操做

    • hset
    • hget
    • hgettall
    • hmset
    • hincrby
    • hkeys
    • hvals
    • hmget
    • hexists
    • hdel
相關文章
相關標籤/搜索