一、简介

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。

 

二、下载安装

下载地址  https://github.com/MicrosoftArchive/redis/releases

Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.msi安装包,安装到C:\Redis

注意把安装路径直接添加到环境变量(安装时有选项可以勾选)。

 

三、修改conf配置文件(使Redis服务可以被局域网内其他电脑访问)

conf文件在Redis所在目录下,比如win7系统我们直接用redis.windows.conf文件即可。

在电脑上(比如ip:192.168.1.99)修改redis配置文件如下:

bind 192.168.1.99

注意使用bind 127.0.0.1表示绑定本机,只允许本机应用访问。

 

关闭防火墙的情况下 局域网内的机器都能访问到该redis了。可以再设置一个密码。

requirepass  具体密码

 

四、启动Redis服务(应用conf配置文件)

在cmd控制台导航到Redis目录 C:\Redis 运行 redis-server.exe redis.windows.conf 。如下图

redis 的存储位置 redis指定存储位置_redis

这时候另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了。
切换到redis目录下运行 redis-cli.exe -h 192.168.1.99  -p 6379 。 (注意:下图命令行的127.0.0.1表示仅供本机应用访问Redis服务)
设置键值对 set  myKey   abc
取出键值对 get  myKey

 

redis 的存储位置 redis指定存储位置_redis_02

注意每次修改完conf配置文件后,重新执行上面两图中的命令行。

 

五、前端工具

前端工具可以使用Redis Desktop Manager

 

 

 

六、C#引用的第三方库

C#使用Redis可以找找流行的第三方库:

1、ServiceStack.Redis 是商业版,免费版有限制;

2、另外有csredis,作者在 2014 年以后就没有更新了,它不支持 .net core,但是它的源码可读性很强非常干净,几乎无任何依赖。可以在Nuget上搜一下。

  又有人做了一部分代码修改后(支持了.net core)就能正常使用了。见地址

     原话如下:

nuget Install-Package CSRedisCore

源码地址:https://github.com/2881099/csredis

经过了两年的洗礼,同胞们大可放心使用。

 

下面介绍原著csredis的简单使用:

class Program
    {
        static string _host = "192.168.2.222";
        //static string _local = "localhost";
        static int MaxCount = 100000;
        static void Main(string[] args)
        {
            using (var redis = new RedisClient(_host))
            {
                //string ping = redis.Ping();
                //string echo = redis.Echo("hello world");
                //DateTime time = redis.Time();

                //redis.Set("test1",);
                Console.WriteLine("开始写入操作。。。");
                Stopwatch sw = new Stopwatch();
                sw.Start();
                redis.StartPipe();
                for (int i = 0; i < MaxCount; i++)
                {
                    redis.Set("test" + i, i);
                }
                redis.EndPipe();
                string msg = string.Format("写入{0}条,耗时:{1}ms", MaxCount, sw.ElapsedMilliseconds);
                Console.WriteLine(msg);
                Console.ReadKey();

                Console.WriteLine("开始读取操作。。。");
                sw.Restart();
                redis.StartPipe();
                for (int i = 0; i < MaxCount; i++)
                {
                    var val = redis.Get("test" + i);

                    //Console.Write(val + " ");
                }
                var res = redis.EndPipe();
                msg = string.Format("获取{0}条,耗时:{1}ms", MaxCount, sw.ElapsedMilliseconds);

                foreach (var item in res)
                {
                    Console.Write(item + " ");
                }

                Console.WriteLine();
                Console.WriteLine(msg);

                Console.ReadKey();

                Console.WriteLine("开始删除操作。。。");
                sw.Restart();
                redis.StartPipe();
                for (int i = 0; i < MaxCount; i++)
                {
                    redis.Del("test" + i);
                }
                redis.EndPipe();
                msg = string.Format("删除{0}条,耗时:{1}ms", MaxCount, sw.ElapsedMilliseconds);
                Console.WriteLine(msg);

            }

            Console.ReadKey();
        }
    }

 

 

七、简单测试一下性能

1、本地循环操作

 

redis 的存储位置 redis指定存储位置_redis_03

 

2、使用管道操作本机服务器  pipeline

 

redis 的存储位置 redis指定存储位置_配置文件_04

 

3、使用管道操作内网服务器

 

redis 的存储位置 redis指定存储位置_配置文件_05