1. 程式人生 > 資料庫 >全網最完整的Redis新手入門指導教程

全網最完整的Redis新手入門指導教程

前言

本文提供全網最完整的Redis入門指導教程,下面我們從下載Redis安裝包開始,一步一步的學習使用。

下載Redis

官網提供的Redis安裝包是服務於Linux的,而我們需要在Window下使用Redis,所以,我們去下面這個網址中下載。

Redis的下載地址:https://github.com/microsoftarchive/redis/releases。

如下圖所示,Redis的windows版是由microsoftarchive提供,是微軟的一個工作小組,所以我們可以選擇完全信任,下面我們選擇最新版的Redis版本下載(可以看到,儘管是最新版本,但最後一次提交已經是2016年了)

全網最完整的Redis新手入門指導教程

下載完成後解壓到資料夾,得到檔案如下:

全網最完整的Redis新手入門指導教程

重要檔案講解:

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客戶端很多,如下圖:

全網最完整的Redis新手入門指導教程

這裡我們使用ServiceStack.Redis來訪問Redis。

建立專案

首先我們建立一個專案RedisConsole,然後在Nuget下搜尋ServiceStack.Redis,如下圖:

全網最完整的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,},//初始化資料庫 預設有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的插入和讀取。

但我們不滿足於此,我們需要一個圖形管理介面更直觀的檢視Redis資料庫。

下載RedisStudio。

下載地址:https://github.com/cinience/RedisStudio/releases

執行RedisStudio,連線本地Redis,如下圖:

全網最完整的Redis新手入門指導教程

連線成功後,點選Data選單,檢視資料。

全網最完整的Redis新手入門指導教程

可以看到,我們新增的資料被寫進了第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新手入門指導教程

檢視服務。

全網最完整的Redis新手入門指導教程

如上圖所示,服務已經成功的安裝到系統中了,右鍵就可以啟動服務了。

當然我們也可以通過命令列啟動和關閉服務,命令如下:

啟動服務命令:redis-server.exe --service-start

關閉服務命令:redis-server.exe --service-stop

刪除服務命令:redis-server.exe--service-uninstall

CMD執行關閉服務結果如下圖:

全網最完整的Redis新手入門指導教程

注意:redis.windows.conf檔案預設配置的IP需要修改成本機的IP,window服務才能正常啟動。

全網最完整的Redis新手入門指導教程

配置密碼

我們都知道資料庫是需要密碼的,這樣才能保證安全性,不然任何一個知道你伺服器IP的人只要按個埠試一遍就可以連線你的資料庫了。

Redis的資料庫密碼需要在配置檔案中設定,預設是沒有密碼的。

因為上文我們配置Windows服務時,指定了redis.windows.conf檔案為配置檔案,所以我們現在需要在redis.windows.conf檔案中配置密碼。

開啟redis.windows.conf檔案,搜尋【# requirepass foobared】定位到配置密碼的行(配置檔案中#為註釋符),然後在該行下方輸入requirepass 123456,其中123456就是資料庫的密碼了,如下圖所示:

全網最完整的Redis新手入門指導教程

現在我們測試一下,執行我們剛才的專案,結果如下圖所示:

全網最完整的Redis新手入門指導教程

可以看到,系統提示了驗證錯誤的異常。

這是因為我們上文配置的連線字串是【localhost:6379】這裡面只有IP和埠,現在因為有了密碼所以這個字串不在合法了。

現在我們將密碼加入進字串,修改程式碼如下:

private static string ConnStr = 123456@localhost:6379;

專案成功執行,訪問Redis資料庫成功,如下圖:

全網最完整的Redis新手入門指導教程

----------------------------------------------------------------------------------------------------

程式碼已經傳到Github上了,歡迎大家下載。

Github地址:https://github.com/kiba518/RedisConsole

----------------------------------------------------------------------------------------------------

總結

到此這篇關於Redis新手入門指導教程的文章就介紹到這了,更多相關Redis新手入門教程內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!