全網最完整的Redis入門指導

前言html

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

下載Redisgithub

官網提供的Redis安裝包是服務於Linux的,而咱們須要在Window下使用Redis,因此,咱們去下面這個網址中下載。redis

Redis的下載地址:https://github.com/microsoftarchive/redis/releases數據庫

以下圖所示,Redis的windows版是由microsoftarchive提供,是微軟的一個工做小組,因此咱們能夠選擇徹底信任,下面咱們選擇最新版的Redis版本下載(能夠看到,儘管是最新版本,但最後一次提交已是2016年了)windows

下載完成後解壓到文件夾,獲得文件以下:緩存

重要文件講解:

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

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

注:此文章爲原創,任何形式的轉載都請聯繫做者得到受權並註明出處!
若您以爲這篇文章還不錯,請點擊下方的推薦】,很是感謝!

http://www.javashuo.com/article/p-pzfzmqib-nt.html

 

相關文章
相關標籤/搜索