程序地带

.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"


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/HaoYangkun/p/14188803.html

随机推荐

在浏览器输入url后发生了什么?

1.在浏览器的地址栏输入URL并按下回车2.浏览器查找当前URL是否存在缓存,并比较缓存是否过期。3.DNS解析对应的IP4.根据IP建立TCP连接(三次握手)...

People in the song 阅读(369)

求两个集合是否有交集 c语言_集合之间的关系

求两个集合是否有交集 c语言_集合之间的关系

知识点梳理:1、两个集合之间的包含关系——子集、真子集与全集(1)子集、真子集定义1:对于两个集合与,如果集合的任何一个元素都属于集合,那么集合...

weixin_39594312 阅读(533)

代码解析_cephbluestoretool工具实践及源代码解析

代码解析_cephbluestoretool工具实践及源代码解析

为什么会有这篇文章笔者之前在一个集群里遇到osd crash的问题,google之后都是推荐使用ceph-bluestore-tool工具来进行运维操作。刚开始对这个工具不是很熟悉(主要...

weixin_39757040 阅读(462)

C# 二分法(5分钟学会二分法)

C# 二分法(5分钟学会二分法)

**二分法:**不断对半折缩小检索范围。适用于数据量较大的情况。前提:传入数组需要排序好的classProgram{staticvoidMain(string[]args)...

ou.cs 阅读(223)

富人破产的六大原因

富人破产的六大原因

这几年,很多有钱人又变成穷光蛋了,甚至负债累累,原因有以下六点:1、缺乏管理大量资金的技能。钱少是问题,钱多也是问题,...

hzcya911 阅读(310)

文本系列标签

文本系列标签注释h1~h6brphrbifont<!DOCTYPEhtml><html><head><metacharset="UTF-8&#...

czw10000 阅读(221)

代码解析_BundleFusion代码解析

论文解析参考:https://blog.csdn.net/fuxingyin/article/details/52921958重要参数s_integrationWidth=320...

weixin_39997089 阅读(154)

restful api接口规范

域名用api关键字来标识接口urlhttps://api.example.comhttps://example.org/api/注:看到api字眼,就代表该请求url链接是...

镇杰。 阅读(464)