前言 本文提供全網最完整的Redis入門指導教程,下麵我們從下載Redis安裝包開始,一步一步的學習使用。 下載Redis 官網提供的Redis安裝包是服務於Linux的,而我們需要在Window下使用Redis,所以,我們去下麵這個網址中下載。 Redis的下載地址:https://github. ...
前言
本文提供全網最完整的Redis入門指導教程,下麵我們從下載Redis安裝包開始,一步一步的學習使用。
下載Redis
Redis的下載地址:https://github.com/microsoftarchive/redis/releases。
如下圖所示,Redis的windows版是由microsoftarchive提供,是微軟的一個工作小組,所以我們可以選擇完全信任,下麵我們選擇最新版的Redis版本下載(可以看到,儘管是最新版本,但最後一次提交已經是2016年了)
下載完成後解壓到文件夾,得到文件如下:
重要文件講解:
redis-server.exe:Redis服務端宿主程式,運行後會啟動一個控制台窗體,該窗體是宿主程式,如關閉窗體,則Redis服務關閉。
redis-check-dump.exe:本地資料庫檢查程式。
redis-check-aof.exe:更新日誌檢查程式。
redis-benchmark.exe:性能測試,用以模擬同時由N個客戶端發送M個 SETs/GETs 查詢。
redis-cli.exe: Redis客戶端程式,服務端開啟後,可以通過該客戶端進行命令測試。(運行後,會啟動一個控制台窗體,可在控制台內輸入命令)
Windows Service Documentation.docx:Redis服務端使用文檔。
redis.windows-service.conf:Redis啟動服務預設載入的配置文件(下文會介紹如何將Redis服務已Windows服務模式啟動),雙擊redis-server.exe啟動時並不載入該文件,雙擊exe啟動時會提示未指定配置文件,使用預設配置,這個預設配置應該是exe內部編寫的。
redis.windows.conf :Redis配置文件,其內容和redis.windows-service.conf是一模一樣的,相當於一個備份,如果希望Redis讀取的配置文件是redis.windows.conf ,則需要對Redis進行命令操作,重新設置配置文件。
瞭解Redis文件信息後,我們運行redis-server.exe,然後我們編寫一個C#的控制台項目訪問Redis。
Redis訪問
C#想訪問Redis需要使用開源類庫,那麼應該使用哪個類庫呢?
打開Redis的中文官網http://www.redis.cn/,在客戶端菜單下可以發現C#可用的Redis客戶端很多,如下圖:
這裡我們使用ServiceStack.Redis來訪問Redis。
創建項目
首先我們創建一個項目RedisConsole,然後在Nuget下搜索ServiceStack.Redis,如下圖:
然後創建一個RedisManager類來管理Redis,代碼如下:
using ServiceStack.Redis; using ServiceStack.Text; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.Serialization.Formatters.Binary; using System.Text; using System.Threading.Tasks; namespace RedisConsole { /// <summary> /// RedisManager類主要是創建鏈接池管理對象的 /// </summary> public class RedisManager { /// <summary> /// 綁定本機Redis /// </summary> private static string ConnStr = "localhost:6379";//password@ip:port 123@localhost:6379 private static PooledRedisClientManager _prcm; /// <summary> /// 靜態構造方法,初始化鏈接池管理對象 /// </summary> static RedisManager() { _prcm = CreateManager(new string[] { ConnStr }, new string[] { ConnStr }); } /// <summary> /// 創建鏈接池管理對象 /// </summary> private static PooledRedisClientManager CreateManager(string[] readWriteHosts, string[] readOnlyHosts) { //WriteServerList:可寫的Redis鏈接地址。 //ReadServerList:可讀的Redis鏈接地址。 //MaxWritePoolSize:最大寫鏈接數。 //MaxReadPoolSize:最大讀鏈接數。 //AutoStart:自動重啟。 //LocalCacheTime:本地緩存到期時間,單位:秒。 //RecordeLog:是否記錄日誌,該設置僅用於排查redis運行時出現的問題,如redis工作正常,請關閉該項。 //RedisConfigInfo類是記錄redis連接信息,此信息和配置文件中的RedisConfig相呼應 // 支持讀寫分離,均衡負載 return new PooledRedisClientManager(readWriteHosts, readOnlyHosts, new RedisClientManagerConfig { MaxWritePoolSize = 5, // “寫”鏈接池鏈接數 MaxReadPoolSize = 5, // “讀”鏈接池鏈接數 AutoStart = true, }, 0,//初始化資料庫 預設有16個數據 這裡設置初始化為第0個 50,//連接池數量 5//連接池超時秒數 ) { ConnectTimeout = 6000,//連接超時時間,毫秒 SocketSendTimeout = 6000,//數據發送超時時間,毫秒 SocketReceiveTimeout = 6000,// 數據接收超時時間,毫秒 IdleTimeOutSecs = 60,//連接最大的空閑時間 預設是240 PoolTimeout = 6000 //連接池取鏈接的超時時間,毫秒 }; } /// <summary> /// 客戶端緩存操作對象 /// </summary> public static IRedisClient GetClient() { if (_prcm == null) { _prcm = CreateManager(new string[] { RedisPath }, new string[] { RedisPath }); } return _prcm.GetClient(); } } }
然後在Main函數里使用RedisManager來進行寫入和讀取,代碼如下:
static void Main(string[] args) { var redisClient = RedisManager.GetClient(); redisClient.Set<string>("Name", "Kiba518"); redisClient.Set<int>("Age", 10000); Console.WriteLine($"MyName:{redisClient.Get<string>("Name")}====MyAge:{redisClient.Get<int>("Age")}"); redisClient.Dispose(); //釋放記憶體 Console.ReadLine(); }
運行結果如下圖所示:
可以看到,我們成功的完成了Redis的插入和讀取。
但我們不滿足於此,我們需要一個圖形管理界面更直觀的查看Redis資料庫。
下載RedisStudio。
下載地址:https://github.com/cinience/RedisStudio/releases
運行RedisStudio,連接本地Redis,如下圖:
連接成功後,點擊Data菜單,查看數據。
可以看到,我們添加的數據被寫進了第0個資料庫(Redis預設會創建16個資料庫,資料庫編號以0開頭)。
Redis的Windows服務
使用Cmd的命令視窗作為Redis的宿主進程確實有一些問題,比如關閉了就不能用了,比如不能開機自啟。為了讓Redis服務可以更好的運行,我們需要把Redis的宿主改成Windows是服務。
這件事不需要我們自行開發,redis-server.exe中已經提供了這些功能,它的Main函數會處理一些他接受的參數。
現在我們使用命令行啟動redis-server.exe。
註:使用Redis命令時,需要在先將目錄跳轉到Redis所在文件夾,如【cd/d D:\Redis-x64-3.2.100】
redis-server.exe --service-install redis.windows.conf --loglevel verbose
參數介紹:
service-install:啟動Redis服務安裝,必須是第一個參數。
redis.windows.conf:指定配置文件。
loglevel verbose:日誌級別。
CMD運行結果如下圖所示:
查看服務。
如上圖所示,服務已經成功的安裝到系統中了,右鍵就可以啟動服務了。
當然我們也可以通過命令行啟動和關閉服務,命令如下:
啟動服務命令:redis-server.exe --service-start
關閉服務命令:redis-server.exe --service-stop
CMD運行關閉服務結果如下圖:
配置密碼
我們都知道資料庫是需要密碼的,這樣才能保證安全性,不然任何一個知道你伺服器IP的人只要按個埠試一遍就可以連接你的資料庫了。
Redis的資料庫密碼需要在配置文件中設置,預設是沒有密碼的。
因為上文我們配置Windows服務時,指定了redis.windows.conf文件為配置文件,所以我們現在需要在redis.windows.conf文件中配置密碼。
打開redis.windows.conf文件,搜索【# requirepass foobared】定位到配置密碼的行(配置文件中#為註釋符),然後在該行下方輸入requirepass 123456,其中123456就是資料庫的密碼了,如下圖所示:
現在我們測試一下,運行我們剛纔的項目,結果如下圖所示:
可以看到,系統提示了驗證錯誤的異常。
這是因為我們上文配置的連接字元串是【localhost:6379】這裡面只有IP和埠,現在因為有了密碼所以這個字元串不在合法了。
現在我們將密碼加入進字元串,修改代碼如下:
private static string ConnStr = "123456@localhost:6379";
項目成功運行,訪問Redis資料庫成功,如下圖:
----------------------------------------------------------------------------------------------------
代碼已經傳到Github上了,歡迎大家下載。
Github地址:https://github.com/kiba518/RedisConsole
----------------------------------------------------------------------------------------------------
註:此文章為原創,任何形式的轉載都請聯繫作者獲得授權並註明出處!
若您覺得這篇文章還不錯,請點擊下方的【推薦】,非常感謝!
https://www.cnblogs.com/kiba/p/13085327.html