人
已閱讀
已閱讀
APP開發什么時候需要使用到redis數據庫
來源:www.bqtao.cn ?? ?? 發布時間:2019-07-29
這是一篇關于APP開發數據庫的技術型文章,本文分享了對redis的一些較為深入的理解以及不錯的實戰經驗。APP開發的程序員們可以了解一下。

首先簡單介紹一下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的簡單介紹,有興趣的程序員可以深入學習一下。
- 上一篇:針對B端用戶的APP開發應該注意什么
- 下一篇:APP開發如何給產品做減法