這一章主要寫一些StackExchange.Redis的配置及不太經常用到的函數
數據庫連接
下面是我的連接字符串,里面指定了地址,密碼,及默認的數據庫
Redis啟動后默認會分成0-15個數據庫,不同的數據庫之間鍵可以重復,StackExchange.Redis的GetDatabase函數提供一個db的可選參數
默認-1實際上是0,可以通過設置連接字符串里的defaultdatabase來指定連接哪個數據庫。
指定數據庫的操作比較適合來根據業務來划分
Execute
在StackExchange.Redis中直接執行Redis命令可以通過Execute函數,但是對於大部分命令StackExchange.Redis的Database都會提供方法的封裝,所以理論上是不需要調用Execute函數的
下面的代碼等同於調用IDatabase的StringSet和StringGet函數
GetServer
然而有一些比較常用的功能,卻無法通過IDabaBase中提供的函數來執行,比如Keys,Flushdb,Scan等。這是為什么呢?
原因在於StackExchange.Redis提供的StringSet,SetAdd等函數是面向數據庫集群的,所以實際上添加一個鍵並不一定是添加在某一台服務器上的。
而FlushDb等操作是針對一個具體的服務器(Server)上的一個數據庫的操作。試想如果提供了一個針對整個集群的flushDb操作,萬一誤刪了,后果不可想象。。。
當然StackExchange.Redis也提供了針對Server的相關函數。可以通過ConnectionMultiplexer 實例的GetServer指定具體的Server,這里需要設置具體的服務器地址及端口號。
然后就可以調用其提供的相關函數了
關於Server的服務器地址參數我們也並不需要手寫,Connection已經提供了一個GetEndPoints函數,直接調用即可