全网最完整的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

 

相关文章
相关标签/搜索