上一篇設定使用Redis儲存監控資料,這篇介紹如何使用SQLite,這也是我比較推薦的儲存體。
早期我接觸SQLite都是一些老舊系統(硬體效能不佳、系統應用單純),
所有的TSQL都寫在AP,資料庫只有簡單的table或view(沒有任何SP、function、trigger、SQL CLR…等),
幫這樣的系統安裝SQL Server,一來是殺雞焉用牛刀,二來是硬體等級也無法承受重量級的SQL Server,
三是Access就別鬧了,所以我都是直接使用SQLite來解決,
但如果你的應用程式有很高併發需求,那麼請使用SQL Server,因SQLite沒有支援row lock(DB Lock),
但追求最大磁碟效率而生(只允許一個寫操作,所以吞吐量不高),
所以大部分都應用在崁入式,如Android and IOS~~~anyway~~~
這篇簡單來介紹如何使用SQLite作為RedisLive儲存體
RedisLive\db 有以下兩個檔案
我們先修改redis-live.conf設定使用SQLite
{
"RedisServers" :
[
{
"server" : "192.167.1.121",
"port" : 6379
},
{
"server" : "192.167.1.122",
"port" : 6380
}
],
"DataStoreType" : "sqlite",
"RedisStatsServer":
{
"server" : "192.167.1.123",
"port" : 6381
},
"SqliteStatsStore" :
{
"path" : "C:\\RedisLive\\db\\redislive.sqlite"
}
}
Note:sqlite db file建議移到SSD或ramdisk。
讀取 DB file
sqlite3 C:\RedisLive\db\redislive.sqlite
確認主要4個table
.tables
2個Indexes
.indices monitor
如果沒有的話,可讀取schema.sql建立
.read C:\\RedisLive\\db\\schema.sql
目前都已經存在,所以建立都發生錯誤。
啟動monitor
python redis-monitor.py --duration=20 &
啟動redisLive
python redis-live.py --log_file_prefix=C:\RedisLive\weblog\redislive.log &
確認相關資料
.header on
.mode column
select * from monitor order by datetime desc limit 5;