前言

本文提供全网最完整的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,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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来进行写入和读取,代码如下:

1
2
3
4
5
6
7
8
9
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】

1
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

删除服务命令:redis-server.exe --service-uninstall

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

注意:redis.windows.conf文件默认配置的IP需要修改成本机的IP,window服务才能正常启动。

配置密码

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

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

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

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

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

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

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

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

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

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

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

代码已经传到Github上了,欢迎大家下载。

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

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

转载

https://www.cnblogs.com/kiba/p/13085327.html

 

Redis入门指导的更多相关文章

  1. 全网最完整的Redis入门指导

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

  2. 新手入门指导:Vue 2.0 的建议学习顺序

    起步 1. 扎实的 JavaScript / HTML / CSS 基本功.这是前置条件. 2. 通读官方教程 (guide) 的基础篇.不要用任何构建工具,就只用最简单的 <script> ...

  3. 安装redis入门

    redis官网:redis.io redis版本用的是redis-3.2.2 $ wget http://download.redis.io/releases/redis-3.2.2.tar.gz $ ...

  4. redis入门笔记(2)

    redis入门笔记(2) 上篇文章介绍了redis的基本情况和支持的数据类型,本篇文章将介绍redis持久化.主从复制.简单的事务支持及发布订阅功能. 持久化 •redis是一个支持持久化的内存数据库 ...

  5. redis入门笔记(1)

    redis入门笔记(1) 1. Redis 简介 •Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure serv ...

  6. Redis入门指南

    随着互联网业务对性能需求日益强烈,作为Key/Value存储的Redis具有数据类型丰富和性能表现优异的特点.如果能够熟练地驾驭它,不管是把它用做缓存还是存储,对很多大型应用都很多帮助.新浪作为世界上 ...

  7. React-Native入门指导之iOS篇 —— 一、准备工作

    React-Native 入门指导系列教程目录 一.准备工作 (已完成) 二.项目介绍与调试 三.CSS样式与Flex布局 四.常用UI控件的使用 五.JSX在React-Native中的应用 六.事 ...

  8. React-Native入门指导之iOS篇

    React-Native 入门指导系列教程目录 一.准备工作 (已完成) 二.项目介绍与调试 三.CSS样式与Flex布局 四.常用UI控件的使用 五.JSX在React-Native中的应用 六.事 ...

  9. Linux上安装使用boost入门指导

    Data Mining Linux上安装使用boost入门指导 获得boost boost分布 只需要头文件的库 使用boost建立一个简单的程序 准备使用boost二进制文件库 把你的程序链接到bo ...

随机推荐

  1. 浅谈 Tarjan 算法之强连通分量(危

    引子 果然老师们都只看标签拉题... 2020.8.19新初二的题集中出现了一道题目(现已除名),叫做Running In The Sky. OJ上叫绮丽的天空 发现需要处理环,然后通过一些神奇的渠道 ...

  2. miniconda安装及使用

    conda环境配置 安装conda [清华源下载地址](https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/) 官网或百度云网盘下载对应版本 ...

  3. unity官网安装教程

    于今天起记录与回忆游戏开发相关一些小目标 2020-12-01 第一篇正式的博客就从软件的安装开始吧 unity个人版是免费的不用刻意去找破解版什么的 unity官网安装 1.unity.cn uni ...

  4. Spring Cloud Alibaba 初体验(二) Nacos 服务注册与发现 + 集成 Spring Cloud Gateway

    一.服务注册 添加依赖: <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>s ...

  5. 0001_20190327_使用frp搭建内网穿透

    1. 环境 a)         公网服务器为阿里云的ECS  Windows  2008 R2服务器, 有公网IP地址; 这个作为frp的服务器 b)         内网是开发服务器, Cento ...

  6. badboy下载

    最近新接触了badboy软件,以下是百度网盘链接,有需要可以下载. 链接:https://pan.baidu.com/s/1O4oIhx-twcaMA_fDzRQPHg提取码:7i44 二维码:

  7. 使用matpoltlib读取csv显示图表范例

    import os import numpy as np import matplotlib.pyplot as plt root = os.getcwd() list_data = [os.path ...

  8. 第4.4节 Python解析与推导:列表解析、字典解析、集合解析

    一.    引言 经过前几个章节的介绍,终于把与列表解析的前置内容介绍完了,本节老猿将列表解析.字典解析.集合解析进行统一的介绍. 前面章节老猿好几次说到了要介绍列表解析,但老猿认为涉及知识层面比较多 ...

  9. 第三十九章、PyQt显示部件:OpenGL Widget部件功能简介及使用其显示图片

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 OpenGL Widget部件是一个Op ...

  10. Linux 服务分类

    一,服务分类 1,服务简介与分类 1,服务的分类 启动与自启动 1,服务启动:就是在当前系统中让服务运行,并提供功能 2,服务自启动:自启动是指让服务在系统开机或重启动之后,随着系统的启动而自动启动的 ...