精選文章

2021 年 1 月熱門電子書推薦 | 精選書籍推薦

圖片
2021 年1 月推薦書籍:一起來閱讀增進知識吧,挑戰看看這個月能看幾本!或是有其他推薦書籍也歡迎分享~ 全身激痛點地圖 (電子書) 出版日期:2020/04/21 作者:侯鐘堡 推薦指數:⭐⭐⭐⭐ 失眠的年代:即刻救援你的睡眠,不睡這個殺手就在你身邊 (電子書) 出版日期:2020/12/16 作者:許承翰,高紅敏 推薦指數:⭐⭐⭐⭐ 病從排寒解2 排寒實踐與突破:20年臨床實證,突破排寒盲點,防治疫毒流感的中醫養命方略! (電子書) 出版日期:2020/12/05 作者:李璧如 推薦指數:⭐⭐⭐⭐ 身體的立體結構網絡:一個結構治療科醫師的筆記 (電子書) 出版日期:2020/11/01 作者:林兩傳 推薦指數:⭐⭐⭐⭐ 1個月-7kg 奇蹟蛋白質減重法 (電子書) 出版日期:2020/12/29 作者:土田隆 推薦指數:⭐⭐⭐⭐ 人類使用說明書 (電子書) 出版日期:2020/11/26 作者:卡蜜拉‧彭 推薦指數:⭐⭐⭐⭐ 0負擔天文課:輕薄短小的109堂課,變身一日太空人 (電子書) 出版日期:2020/11/16 作者:侯東政 推薦指數:⭐⭐⭐⭐⭐ 我們為何吃太多?全新的食慾科學與現代節食迷思 (電子書) 出版日期:2020/12/30 作者:安德魯‧詹金森 推薦指數:⭐⭐⭐⭐ 只有一半的真相:為什麼科學看不到全貌? (電子書) 出版日期:2020/11/30 作者:布拉斯藍德 推薦指數:⭐⭐⭐⭐⭐ ...

解決無法在 Heroku 持續儲存靜態資料問題 | 使用 Redis 記憶體資料庫

前陣子幫朋友做了一個職缺自動通知的機器人,主要是用 Python 至指定頁面爬取職缺資訊,接著比對已經排取過的資料做排除,最後透過 LINE Notify API 來發送推播通知。

我把 Python script 部署在 Heroku 上,並透過 schedule 的 add-on 來定期執行。爬取過的資料原本我是打算用靜態檔來儲存,整理成 json 格式另存。

But ...... 我發現每次執行程式後,完全沒有將資料儲存起來。後來查官方文件才知道, Heroku 的虛擬機 ( dyno ) 是 臨時硬碟 ( Ephemeral Disk ),文件中也有提到:

Heroku has an “ephemeral” hard drive, this means that you can write files to disk, but those files will not persist after the application is restarted.

於是,就打算嘗試將資料存到 Redis,Heroku 有提供免費的 Redis 資料庫服務 ( 有 25 MB ),不過這次是申請使用 Redis Labs ( 免費試用方案提供 30 MB )。

以下分享申請步驟及如何實作:

一、申請 Redis Labs

至 Redis Labs 官網,留下 Email 點選 START FREE

首頁輸入信箱
輸入完後,會請你至信箱收取認證信
送出完成畫面
至信箱點選啟動按鈕
啟動信件
填寫姓名後點選 Continue 

二、設置 Redis 資料庫

先選擇完左上方的雲端服務後,點選左下角基本方案 -> 30 MB 免費方案。


此步驟是填寫要註冊的名稱。


接著是創建資料庫,填寫資料庫名稱後,記得把連線密碼記下來。最後按 Activate。

成功啟用!記得把 Endpoint 資料庫主機位置跟 port 也記下來唷!

三、可以開始來寫程式囉

import redis module 後,把 host 設定剛剛記下來的資料庫主機位置, port 設定為主機位置後的阜號。password 也是設定上方步驟獲得的密碼。

因為 redis 是 key-value 關係,所以可以看到我塞入 key = 'key' ,value = 'hello world',最後印出 key 值為 ’key‘ 的資料。

import redis

redisHost = config['redis']['host']
redisPort = config['redis']['port']
redisPwd = config['redis']['password']
useRedis = redis.Redis (
host = redisHost,
port = redisPort,
password = redisPwd
)
useRedis.set("key", "hello, world")
print(useRedis.get("key")) 


執行此程式可以就能得到 hello world 啦!


只要搭配 Redis,就能把部署在 Heroku 的程式碼,將資料存在 Redis 中,不怕被 reset 掉囉!


如果喜歡我的文章,想隨時收到最新行銷、技術分享,歡迎按 fb 粉專讚
加入好友  或加入 LINE 官方帳號,即時接收最新文章通知

留言

這個網誌中的熱門文章

自動將 Blogger 文章發佈到 facebook 粉絲專頁 (上)

使用 docker 部署 Python Flask | 心得分享

3 步驟獲取Google Play 中APP數據 - Python 爬蟲