.net core使用CSRedisCore访问Redis主从+哨兵

本文主要目的是对Redis主从+哨兵的高可用方案进行实验,文中使用的技术不进行深入说明,想深入了解的可自行百度。

用到的软件和版本:

  • CSRedisCore版本:3.0.6.2   (https://github.com/2881099/csredis)
  • Redis版本:3.2.100 (windows)

 

1. 下载Redis安装包

本示例使用Windows10搭建Redis环境,Windows下的Redis下载方式如下

打开网址 https://github.com/microsoftarchive/redis/releases,下载3.2.100的压缩包

.net core使用CSRedisCore访问Redis主从+哨兵

2. 搭建Redis主从集群

将压缩包解压然后复制,总共3份,我们搭建1主2从模式,Redis6379(主),Redis6479(从),Redis6579(从)

.net core使用CSRedisCore访问Redis主从+哨兵

主Redis配置,进入Redis6379目录中,配置 redis.windows.conf

为了方便运行,目录下加个run.bat文件

从Redis配置,分别进入Redis6479和Redis6579目录,配置redis.windows.conf,并添加run.bat文件

现在Redis配置好了,运行3个Redis目录中的run.bat启动服务,运行后可以看到主从都成功连接。

.net core使用CSRedisCore访问Redis主从+哨兵

3.搭建哨兵

实际使用中一般会使用多个哨兵进行监控,本文作了简化,只使用1个哨兵,多个哨兵都是相同的配置,仅区分端口。

将Redis目录复制一份命名为RedisSentinel,添加sentinel.conf文件,内容如下:

CMD中通过命令运行哨兵

可以看到哨兵已经发现1主2从并开始监听了

.net core使用CSRedisCore访问Redis主从+哨兵

也可通过命令查看哨兵状态

.net core使用CSRedisCore访问Redis主从+哨兵

4. .NET Core中使用Redis集群

我们使用CSRedisCore来访问Redis,CSRedisCore是国内大牛开发的一个.net core redis 组件,源码可读性很强非常干净,几乎无任何依赖。性能相比ServiceStack.Redis和StackExchange.Redis会快10%左右,支持Redis的高级特性:订阅/发布,Pipeline,MGet/MSet,集群,分区。

创建一个.net core 控制台程序,然后添加nuget包

Program.cs代码

模拟故障进行测试,启动程序后,杀死主Redis进程,.net core程序再次访问Redis会出现一次异常检查,然后能正常切换到新的master上。

.net core使用CSRedisCore访问Redis主从+哨兵

来源:sundna

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年5月25日
下一篇 2019年5月25日

相关推荐