https://www.cnblogs.com/chenyanbin/p/11443421.html 参考这位大哥文章
简介#
已经有了Membercache和各种数据库,Redis为什么会产生?Redis纯粹为应用而产生,它是一个高性能的key-value数据库。Redis的出现,很大程序补偿了Memcached这类key-value存储的不足,解决了断电后数据库完全丢失的情况;在部分场合可以对关系数据库起到很好的补偿作用。性能测试结果表示SET操作每秒钟可达110000,GET操作每秒81000次(当然不同的服务器配置性能不同)。
Redis是一种面向"键-值"对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景。和Memcache类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的,支持各种不同方式的排序。Redis与Memcache一样,为了保证效率,数据都是缓存在内存中,区别的是Redis会周期性的把更新的数据写入磁盘或者修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis目前提供四种数据类型:string、list、set、zset
Redis的存储分为内存存储、磁盘存储和log文件三部分,配置文件中有三个参数对其进行配置。
1、save seconds updates:指出在多长时间内,有多少次更新操作,就将数据同步到数据文件。
2、appendonly yes/no:是否在每次更新操作后进行日志记录。如果不开启,可能会在断电时导致一段时间内的数据丢失。因为Redis本身数据同步文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在内存中。
3、appendfsync no/always/everysec:数据缓存同步至磁盘的方式。no表示等操作系统进行数据缓存同步到磁盘,always表示每次更新操作后手动调用fsync()将数据写到磁盘,everysec表示每秒同步一次。
安装及使用#
下载地址:https://github.com/microsoftarchive/redis/releases
百度云盘:
链接:https://pan.baidu.com/s/1ObkTyQ5hrCYoVGWkqanfFQ
提取码:d3yo
第一步:下载后解压本地磁盘上(注:目录不能包括中文)#
第二步: 定位到解压redis目录下(cmd)#
1 1、redis-server.exe redis服务器的daemon启动程序
2 2、redis.windows.conf redis配置文件
3 3、redis-cli.exe redis命令行操作工具
4 4、redis-check-dump.exe 本地数据库检查
5 5、redis-check-aof.exe 更新日志检查
6 6、redis-benchmark.exe 性能测试,用于模拟同时由N个客户端发送M个 SETs/GETs查询(类似于Apache ab工具)
第三步:启动服务#
我们也可以启动前配置下Redis,详细配置请看:https://www.runoob.com/redis/redis-conf.html(配置文件:redis.windows.conf)
这里为了演示,直接用默认配置启动即可
配置文件参数
启动方式2#
启动方式3(以Window服务方式)#
1 格式:redis-server --service-install redis.windows.conf
第四步:连接Redis#
连上!!
第五步:SET/GET#
以下C#控制台代码演示
第一步:NuGet下载DLL类库#
注:安装最新版本的,项目框架应用高版本的,低版本的框架,可能不兼容高版本Redis
不会下载的朋友,请到我百度云盘下载:
链接:https://pan.baidu.com/s/1-Wzv0tnoXhi6XMkhv_90gw
提取码:e9at
第二步:引入类库#
第三步:引入命名空间#
1 using ServiceStack.Redis;
第四步:实现(控制台)#
1 using ServiceStack.Redis;
2 using System;
3 using System.Collections.Generic;
4 using System.Linq;
5 using System.Text;
6 using System.Threading;
7
8 namespace RedisDemo
9 {
10 class Program
11 {
12 static void Main(string[] args)
13 {
14 //在Redis中存储常用的5种数据类型:String,Hash,List,SetSorted set
15
16 RedisClient client = new RedisClient("192.168.1.102", 6379);
17
18 client.FlushAll();
19
20 //-----string开始----------
21 client.Add<string>("StringValueTime", "我已设置过期时间噢30秒后会消失", DateTime.Now.AddMilliseconds(30000));
22 while (true)
23 {
24 if (client.ContainsKey("StringValueTime"))
25 {
26 Console.WriteLine("String.键:StringValue,值:{0} {1}", client.Get<string>("StringValueTime"), DateTime.Now);
27 Thread.Sleep(10000);
28 }
29 else
30 {
31 Console.WriteLine("键:StringValue,值:我已过期 {0}", DateTime.Now);