一、简介
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 。如下图
这时候另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了。
切换到redis目录下运行 redis-cli.exe -h 192.168.1.99 -p 6379 。 (注意:下图命令行的127.0.0.1表示仅供本机应用访问Redis服务)
设置键值对 set myKey abc
取出键值对 get myKey
注意每次修改完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、本地循环操作
2、使用管道操作本机服务器 pipeline
3、使用管道操作内网服务器