APP開發谘詢熱線:0755-23578246 | 136-2233-6324歡迎來到深圳市樂信網絡科技有限公司網站!

已閱讀

APP開發什麽時候需要使用到redis數據庫

來源:caorj.com       發布時間:2019-07-29
這是一篇關於APP開發數據庫的技術型文章,本文分享了對redis的一些較為深入的理解以及不錯的實戰經驗。APP開發的程序員們可以了解一下。
APP開發什麽時候需要使用到redis數據庫
首先簡單介紹一下redis是什麽。借用百度百科的解釋:redis是一個key-value存儲係統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。
 
對於APP開發的項目來說,redis要怎麽使用?首先要安裝好redis,然後運行,在pom文件中引入依賴,在要使用redis緩存的類的mapper.xml文件配置redis的全限定名。引入redis的redis.properties文件(如果要更改配置就可以使用)
 
APP開發什麽樣的應用場景需要用到redis呢?
String :
1存儲json類型對象,2計數器,3優酷視頻點讚等
list(雙向鏈表)
1可以使用redis的list模擬隊列,堆,棧
2朋友圈點讚(一條朋友圈內容語句,若幹點讚語句)
 
為什麽redis是單線程的都那麽快?原因主要有以下幾點:
1.數據存於內存
2.用了多路複用I/O
3.單線程
 
redis也可以進行發布訂閱消息(然後可以引出哨兵模式(後麵會講)怎麽互相監督的,就是因為每隔2秒哨兵節點會發布對某節點的判斷和自身的信息到某頻道,每個哨兵訂閱該頻道獲取其他哨兵節點和主從節點的信息,以達到哨兵間互相監控和對主從節點的監控)和很多專業的消息隊列係統(例如Kafka、RocketMQ)相比,Redis的發布訂閱略顯粗糙,例如無法實現消息堆積和回溯。但勝在足夠簡單。
 
redis還能將數據持久化,將內存中的數據異步寫入硬盤中,兩種方式:RDB(默認)和AOF
RDB持久化原理:通過bgsave命令觸發,然後父進程執行fork操作創建子進程,子進程創建RDB文件,根據父進程內存生成臨時快照文件,完成後對原有文件進行原子替換(定時一次性將所有數據進行快照生成一份副本存儲在硬盤中)
優點:是一個緊湊壓縮的二進製文件,Redis加載RDB恢複數據遠遠快於AOF的方式。
缺點:由於每次生成RDB開銷較大,非實時持久化,
AOF持久化原理:開啟後,Redis每執行一個修改數據的命令,都會把這個命令添加到AOF文件中。
優點:實時持久化。
缺點:所以AOF文件體積逐漸變大,需要定期執行重寫操作來降低文件體積,加載慢
 
以上就是一些對redis的簡單介紹,有興趣的程序員可以深入學習一下。
 
APP運營 微信公眾號 產品設計 APP開發 APP開發公司 網站開發 用戶體驗 微信小程序 產品經理 APP開發價格