Redis(9)-RedisLive設定使用SQLite

上一篇設定使用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;