redis安装windows_超详细的Redis入门指导

8e51e804733fd349e9e79d99aefaea8c.png

脚本之家

你与百万开发者在一起

8e51e804733fd349e9e79d99aefaea8c.png

bbb6ddf879eb7aac822b7087f78ac586.gif

f2f3f3cf48db0fba6b7dcda7be670ac9.png

作者 | kiba518 出品 | 脚本之家(ID:jb51net)

前言

本文提供全网最完整的Redis入门指导教程,下面我们从下载Redis安装包开始,一步一步的学习使用。

下载Redis

官网提供的Redis安装包是服务于Linux的,而我们需要在Window下使用Redis,所以,我们去下面这个网址中下载。

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

如下图所示,Redis的windows版是由microsoftarchive提供,是微软的一个工作小组,所以我们可以选择完全信任,下面我们选择最新版的Redis版本下载(可以看到,尽管是最新版本,但最后一次提交已经是2016年了)

5348c89e7637963811b2da3e72147c06.png

下载完成后解压到文件夹,得到文件如下:

5c1ec82c97f5f354f0a85761bd92180c.png

重要文件讲解:

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

69af07d151bdf4501cee669d4c232cee.png

这里我们使用ServiceStack.Redis来访问Redis。

创建项目

首先我们创建一个项目RedisConsole,然后在Nuget下搜索ServiceStack.Redis,如下图:

075700d1a2f2f1778e525f677365491a.png

然后创建一个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{    ///     /// RedisManager类主要是创建链接池管理对象的    ///     public class RedisManager    {        ///         /// 绑定本机Redis        ///         private static string ConnStr = "localhost:6379";//password@ip:port  123@localhost:6379        private static PooledRedisClientManager _prcm;        ///         /// 静态构造方法,初始化链接池管理对象        ///         static RedisManager()        {            _prcm = CreateManager(new string[] { ConnStr }, new string[] { ConnStr });        }        ///         /// 创建链接池管理对象        ///          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 //连接池取链接的超时时间,毫秒            };        }        ///         /// 客户端缓存操作对象        ///         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("Name", "Kiba518");            redisClient.Set("Age", 10000);              Console.WriteLine($"MyName:{redisClient.Get("Name")}====MyAge:{redisClient.Get("Age")}");            redisClient.Dispose();  //释放内存            Console.ReadLine();        }

运行结果如下图所示:

7838bcbdf993f67d273863028feeee16.png

可以看到,我们成功的完成了Redis的插入和读取。

但我们不满足于此,我们需要一个图形管理界面更直观的查看Redis数据库。

下载RedisStudio。

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

运行RedisStudio,连接本地Redis,如下图:

fc849a20d10764fd5b63fca6f6bc3e0a.png

连接成功后,点击Data菜单,查看数据。

4fa9282b68ef37206b61ea9e7be27343.png

可以看到,我们添加的数据被写进了第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运行结果如下图所示:

80ddd2fed3f8a9b0baf2bd4a77b70b8b.png

查看服务。

9a037137673c30d77b9ee19e195db10f.png

如上图所示,服务已经成功的安装到系统中了,右键就可以启动服务了。

当然我们也可以通过命令行启动和关闭服务,命令如下:

启动服务命令:redis-server.exe --service-start

关闭服务命令:redis-server.exe --service-stop

CMD运行关闭服务结果如下图:

2cb868691459efd7ca6e0d9099e44bba.png

配置密码

我们都知道数据库是需要密码的,这样才能保证安全性,不然任何一个知道你服务器IP的人只要按个端口试一遍就可以连接你的数据库了。

Redis的数据库密码需要在配置文件中设置,默认是没有密码的。

因为上文我们配置Windows服务时,指定了redis.windows.conf文件为配置文件,所以我们现在需要在redis.windows.conf文件中配置密码。

打开redis.windows.conf文件,搜索【# requirepass foobared】定位到配置密码的行(配置文件中#为注释符),然后在该行下方输入requirepass 123456,其中123456就是数据库的密码了,如下图所示:

449301afaaeaf6dc20a75e281af909c2.png

现在我们测试一下,运行我们刚才的项目,结果如下图所示:

35c67f738c4f4000d5eb5b6a439abcea.png

可以看到,系统提示了验证错误的异常。

这是因为我们上文配置的连接字符串是【localhost:6379】这里面只有IP和端口,现在因为有了密码所以这个字符串不在合法了。

现在我们将密码加入进字符串,修改代码如下:

 private static string ConnStr = "123456@localhost:6379";

项目成功运行,访问Redis数据库成功,如下图:

7838bcbdf993f67d273863028feeee16.png


到此Redis的基本使用已经介绍完了,代码已经传到Github上了,欢迎大家下载。

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

本文作者:kiba518,全栈.Net软件工程师

声明:本文为 脚本之家专栏作者 投稿,未经允许请勿转载。

写的不错?赞赏一下

9860da64c76c1f71ed330fb003710a25.png

长按扫码赞赏我

8745226e7d4ba835d8a4605e1fbbc378.png0e8c4701019dcb3e9e67fb3a5573f67a.gif

● ed7cd371c11d1f91344574037ea9fb8c.gif 脚本之家粉丝福利,请查看 

● ed7cd371c11d1f91344574037ea9fb8c.gif 人人都欠微软一个正版? 

● ed7cd371c11d1f91344574037ea9fb8c.gif SpringBoot+Redis分布式锁:模拟抢单

● Redis 6.0 正式版终于发布了!除了多线程还有什么新功能?

 Redis 性能优化的 13 条军规!全网首发

● 面试问Redis锁,我脸都绿了......

f611ac6c47fb2892e1f5ba9a3b5ce2d3.gif

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值