全网最完整的Redis入门指导
前言
本文提供全网最完整的Redis入门指导教程,下面我们从下载Redis安装包开始,一步一步的学习使用。
下载Redis
官网提供的Redis安装包是服务于Linux的,而我们需要在Window下使用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

全网最完整的Redis入门指导的更多相关文章
- Redis入门指导
前言 本文提供全网最完整的Redis入门指导教程,下面我们从下载Redis安装包开始,一步一步的学习使用. 下载Redis 官网提供的Redis安装包是服务于Linux的,而我们需要在Window下使 ...
- Redis入门教程(二)
推荐阅读: Redis入门教程(一)https://www.cnblogs.com/jichi/p/10285346.html 5. Redis 的数据结构 5.1 Redis 数据结构介绍 redi ...
- 超强、超详细Redis入门教程【转】
这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用red ...
- 超详细Redis入门教程【转】
这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么 2.redis的作者何许人也 3.谁在使 ...
- redis入门笔记
redis入门笔记 参考redis实战手册 1. Redis在windows下安装 下载地址:https://github.com/MSOpenTech/redis/tags 安装Redis 1.1. ...
- Java中Redis入门(1)
Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案. Redis官方网网站是:http://www.redis.io/,如下: Redis ...
- 反射实现Model修改前后的内容对比 【API调用】腾讯云短信 Windows操作系统下Redis服务安装图文详解 Redis入门学习
反射实现Model修改前后的内容对比 在开发过程中,我们会遇到这样一个问题,编辑了一个对象之后,我们想要把这个对象修改了哪些内容保存下来,以便将来查看和追责. 首先我们要创建一个User类 1 p ...
- Redis入门手册
这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么 2.redis的作者何许人也 3.谁在使用r ...
- redis入门(二)
目录 redis入门(二) 前言 持久化 RDB AOF 持久化文件加载 高可用 哨兵 流程 安装部署 配置技巧 集群 原理 集群搭建 参考文档 redis入门(二) 前言 在redis入门(一)简单 ...
随机推荐
- Web-Security-Learning
Web Security sql注入 MySql MySQL False 注入及技巧总结 MySQL 注入攻击与防御 sql注入学习总结 SQL注入防御与绕过的几种姿势 MySQL偏门技巧 mysql ...
- python 计算异或
'''******************************************************** Func Name: addZero Para: x : 字符串 y : 长度 ...
- 【原创】CentOS 7搭建多实例MySQL8(想要几个搞几个)
起因 最近项目上开始重构,可能会用到主从加读写分离的情况,就想先在本地搭一个出来试试效果,结果百度一搜出来一大堆,然而自己去踩坑的没几个,绝大多数都是去抄的别人的内容,关键是实际应用中还会出错,浏览器 ...
- redis配置文件.conf和常用配置
1,配置文件在哪 2,Units单位 1 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit 2 对大小写不敏感 3,INCLUDES包含 和我们的spring配置文件类似,可 ...
- Spring MVC基于注解@Controller和@RequestMapping开发的一个例子
1.创建web项目 2.在springmvc的配置文件中指定注解驱动,配置扫描器 在 Spring MVC 中使用扫描机制找到应用中所有基于注解的控制器类,所以,为了让控制器类被 Spring MVC ...
- Dubbo源码阅读-服务导出
Dubbo服务导出过程始于Spring容器发布刷新事件,Dubbo在接收到事件后,会立即执行服务导出逻辑.整个逻辑大致可分为三个部分,第一部分是前置工作,主要用于检查参数,组装URL.第二部分是导出服 ...
- html5学习之路_002
html块 html块元素 块元素在显示时,通常会以新行开始 如:<h1>.<p>.<ul> html内联元素 内联元素头通常不会以新行开始 如:<b> ...
- try catch finally return 轶事
最近阿里发布了java开发手册终极版,看到其中一条规约:[强制]不能在 finally 块中使用 return, finally 块中的 return 返回后方法结束执行,不会再执行 try 块中的 ...
- CTR学习笔记&代码实现6-深度ctr模型 后浪 xDeepFM/FiBiNET
xDeepFM用改良的DCN替代了DeepFM的FM部分来学习组合特征信息,而FiBiNET则是应用SENET加入了特征权重比NFM,AFM更进了一步.在看两个model前建议对DeepFM, Dee ...
- jchdl - RTL Event
https://mp.weixin.qq.com/s/P9uoJwIYdM-mbiR9WCtJCg hardware modeling基于事件驱动模型,RTL中定义了多种事件. jchdl 参考了 ...