.Net平台下C#之Redis-Windows版本与项目的结合使用

.Net平台下C#之Redis-Windows运行版本


1、因为目前Redis不支持Windows平台,所以,如果是大型项目,且有资源的最好在Linux平台下部署Redis。
2、在c#项目中使用Redis服务的话,可以下载微软提供的Redis发行版

1、下载完毕解压之后,试启动一下,命令窗口不能为PowerShell,否则会出现以下界面;

2、cd 到Redis当前目录,输入**redis-server.exe redis.windows.conf **启动,成功会出现如下界面。(注:Redis语法特别严格,如果运行有问题,请注意是否有多了空格或其他字符)

3、然后重新打开一个命令窗口。cd到当前Redis目录下,输入 redis-cli.exe -h 127.0.0.1 -p 6379 命令,连接服务。
4、添加一个Key Value。

5、获取一个Key Value值。

*注意:不要关闭启动Redis服务的命令窗口,否则会断开连接,出现以下问题

测试成功后,我们来在项目中运用。
注:因为通过命令行来注册服务,且命令窗口执行完命令后必须关闭,所以只能通过注册windows服务来使用。
1、将Redis服务注册到本地:redis-server --service-install redis.service-windows.conf,注册成功之后,启动:redis-server --service-start,
客户端所存入的数据:set a 1;,在服务关闭(redis-server --service-stop)重新打开之后还得以存在,保存在.pdb文件中,(注册为windowserver服务后,只需要第一次启动加载资源配置文件存入服务缓存,后面启动服务,缓存里面都会有之前存入得数据)
卸载Redis服务:redis-server --service-uninstall
2、通过RedisConcectionHelp类加载配置文件,获取IP连接,创建连接对象,从而加载数据库。准备锁机制。

/// <summary>
/// 连接字符串
/// </summary>
private static readonly string ConnectionWriteString = ConfigurationManager.AppSettings["RedisPath"];
/// <summary>
/// redis 连接对象
/// </summary>
private static readonly IConnectionMultiplexer ConnMultiplexer = ConnectionMultiplexer.Connect(ConnectionWriteString);
/// <summary>
/// 锁
/// </summary>
private static readonly object Locker = new object();
/// <summary>
/// 数据库
/// </summary>
private readonly IDatabase _db;

然后就可以使用Redis服务进行读取。

Redis多服务启动配置:

redis.windows-service.conf 或 redis.windows.conf
配置文件可以自定义命名,例:服务端端口为6379,命名:redis.6379windows.conf 例2:服务端端口为6380,命名:redis.6380windows.conf
1、Redis 默认不是以守护进程的方式运行,可以通过该配置项修改,使用 yes 启用守护进程 " daemonize no "Windows下没有守护进程
2、指定 Redis 监听端口,默认端口为 port: 6379
3、绑定的主机地址 bind 127.0.0.1
4、当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能 timeout 300
5、设置数据库的数量,默认数据库为 0,可以使用 SELECT 命令在连接上指定数据库ID databases 16
6、指定 RDB 方式持久化的时候,在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合,语法格式是: save Redis 默认配置文件中提供了三个条件:
save 900 1
save 300 10
save 60 10000
分别表示 900 秒(15 分钟)内有 1 个更改,300 秒内有 10 个更改以及 60 秒内有 10000 个更改。
7、指定本地数据库文件名,默认值为 dump.rdb(这个本地数据库也可以自定义命名)dbfilename dump.rdb
8、指定是否在每次更新操作后进行日志记录,Redis 在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面 save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为 no appendonly no
9、指定更新日志文件名,默认为 appendonly.aof appendfilename appendonly.aof(windows系统下,没有先不用管)
10、指定更新日志条件,共有 3 个可选值:
no:表示等操作系统进行数据缓存同步到磁盘(快)
always:表示每次更新操作后手动调用 fsync()将数据写到磁盘(慢,安全)
everysec:表示每秒同步一次(折衷,默认值)
appendfsync everysec
11、存储Redis服务打开关闭,操作日志 在、conf配置里面指向 logfile "server6379_log.txt"

posted @ 2021-03-10 13:48  东骧神骏  阅读(181)  评论(0编辑  收藏  举报