美容网站建设一个多少钱,乐山市规划和建设局门户网站,分宜网站建设,myeclipse怎样做网站csredisGitHub https://github.com/2881099/csredis看了github上的开源项目,上面真的只是单纯的使用文档#xff0c;可能对于我这种人#xff08;菜鸟#xff09;就不太友好#xff0c;我知道他对标的是ServiceStack.Redis#xff0c; 一开始csredis只支持. net 版本… csredisGitHub https://github.com/2881099/csredis看了github上的开源项目,上面真的只是单纯的使用文档可能对于我这种人菜鸟就不太友好我知道他对标的是ServiceStack.Redis 一开始csredis只支持. net 版本但原作者没有继续维护作者使用 . net core重写后逐渐演化的一个. net core 版本的redis 驱动使用这个类库可以方便的地在 c#中访问redis数据库官方介绍低门槛、高性能和分区高级玩法的redis-cli SDK我呢就照着官方文档写一些示例大佬就别看了只是集成方案与学习笔记。https://github.com/luoyunchong/dotnetcore-examples/blob/master/dotnet-core-redis/在学习之前看到README.md上的内容不免陷入沉思好多关键字我都不懂是什么意思所以还是从理论入手搜索资料整合出入门资料往后再讲在asp .net core中集成与使用的示例。哨兵模式Redis哨兵Sentinel模式 https://www.jianshu.com/p/06ab9daf921d上文介绍了Redis的哨兵是什么为了服务的高可用性当一台服务器宕机时可以自动地切换到另一个服务器不需要手动干预Redis的哨兵用于监控Redis服务器的状态当master宕机会自动将其中的一个slave切换为master,然后再通过 发布订阅模式通知其他的从服务器自动修改配置文件自切换主机。先在本地搭建好主从redis服务我本地win10已安装好一个redis,部署在6379端口上、先把这些文档看看。下载windows安装绿色版Redishttps://blog.csdn.net/ml863606/article/details/87456239主从配置(Windows版)本地Redis主从配置(Windows版)从github上下载zip压缩包解压后复制二份文件夹至某一目录配置二个从Redis服务器可参考如下https://www.cnblogs.com/cang12138/p/9132288.html#_label0简单教程D:\services\Redis-x64-3.2.100目录 其实有 “Windows Service Documentation.docx ”上面说的很清楚这里只说最简单的配置多个服务的方式使用文本编辑器打开redis.windows-service.conf文件可修改启用端口。Copyport 6380cmd 到D:\services\Redis-x64-3.2.100-1一定要管理员运行Copy#安装服务
redis-server --service-install redis.windows-service.conf --service-name redis6380
#开启服务
net start redis6380如果无法开启服务redis6380就删除此服务再次执行见下方参考命令 删除服务。本地安装成了三个reids,他们运行在不同的端口三个哨兵。服务类型IPportmaster Redis服务localhost6379slave Redis服务器localhost6380slave Redis服务器localhost6381sentinellocalhost26381sentinellocalhost26379sentinellocalhost26380Copyslaveof $host $port 作用是设置主从库在redis-cli命令中执行即可将此redis设置为host下port端口的从库$开头的为参数slaveof no one #取消同步也可在windows-server.conf文件中配置6379那个redis是使用msi安装包安装的所以redis-cli是可以在任意文件夹位置执行的如未配置请在D:\service\Redis-x64-3.2.100-1目录下执行这些命令。CopyC:\Users\Computerredis-cli -p 6380
127.0.0.1:6381 slaveof 127.0.0.1 6379
OK
ctrlc退出命令行状态。
C:\Users\Computerredis-cli -p 6381
127.0.0.1:6381 slaveof 127.0.0.1 6379
OK另开一个终端CopyC:\Users\Computerredis-cli -p 6379
127.0.0.1:6379 set a 1233
OK
127.0.0.1:6379 get a
1233原本的终端得到a的值是1233已经被同步过来了。Copy127.0.0.1:6381 get a
1233参考命令右击电脑 -管理-服务和应用程序 -服务-可选择服务名进行管理。Copy#开启服务
net start redis6380
#关闭服务
net stop redis6380
#删除服务当服务不正常时可根据名称删除
sc delete redis6380以管理员权限cmd到目录D:\services\Redis-x64-3.2.100中可使用如下命令。Installing the Service--service-installCopyredis-server --service-install redis.windows-service.conf --loglevel verbose
redis-server --service-install redis.windows.conf --service-name redis6380Uninstalling the Service--service-uninstallCopyredis-server --service-uninstallStarting the Service:--service-startCopyredis-server --service-startStopping the Service:--service-stopCopyredis-server --service-stopNaming the Service: --service-name nameCopyredis-server --service-install --service-name redisService1 --port 10001set port :--port 10001查看redis 版本、redis-cli版本CopyPS D:\service\Redis-x64-3.2.100-1 redis-server -v
Redis server v3.2.100 sha00000000:0 mallocjemalloc-3.6.0 bits64 builddd26f1f93c5130ee
PS D:\service\Redis-x64-3.2.100-1 redis-cli -v
redis-cli 3.2.100哨兵配置哨兵模式是Redis提供的一个命令独立进程独立运行哨兵的作用是为了实现对redis服务器状态的监控保证服务的可用性实现故障切换无须人为干预。1.配置项这个是通过 .msi文件安装的redis与.zip解压后启动的服务无区别。打开E:\Program Files\Redis\sentinel.conf没有就创建此文件另外二个redis只用改port对应的值改成26739、26740配置内容如下Copy#当前Sentinel服务运行的端口
port 26381
# 3s内mymaster无响应则认为mymaster宕机了
sentinel monitor mymaster 127.0.0.1 6379 2
#如果10秒后,mysater仍没启动过来则启动failover
sentinel down-after-milliseconds mymaster 3000
# 执行故障转移时 最多有1个从服务器同时对新的主服务器进行同步
sentinel failover-timeout mymaster 10000配置监听的主服务器这里sentinel monitor代表监控mymaster代表服务器的名称可以自定义127.0.0.1代表监控的主服务器6379代表端口2代表只有两个或两个以上的哨兵认为主服务器不可用的时候才会进行failover操作。启动哨兵前提redis服务已启动。CopyPS E:\Program Files\Redis .\redis-server.exe .\sentinel.conf --sentinel_.__.-__ -.__.- . _. -._ Redis 3.2.100 (00000000/0) 64 bit.- .-. \/ _.,_ -._( , .- | , ) Running in sentinel mode|-._-...- __...-.-._| _.-| Port: 26381| -._ ._ / _.- | PID: 22452-._ -._ -./ _.- _.- |-._-._ -.__.- _.-_.-|| -._-._ _.-_.- | http://redis.io-._ -._-.__.-_.- _.- |-._-._ -.__.- _.-_.-|| -._-._ _.-_.- |-._ -._-.__.-_.- _.- -._ -.__.- _.- -._ _.--.__.- [22452] 07 Jul 11:47:00.111 # Sentinel ID is fc076362c0a5cc71d3c72f71c00a15b2726b2bf8
[22452] 07 Jul 11:47:00.111 # monitor master mymaster 127.0.0.1 6379 quorum 2
[22452] 07 Jul 11:47:00.114 * slave slave 127.0.0.1:6381 127.0.0.1 6381 mymaster 127.0.0.1 6379因为windows下不支持守护进程(一种可在后台运行的程序)这样命令行一关闭哨兵也停止了Windows does not support daemonize. Start Redis as service在windows下叫服务service,是可以后台一直运行的。在windows下以服务的形式启动哨兵管理员运行CopyE:\Program Files\Redisredis-server --service-install --service-name sentinel sentinel.conf --sentinelD:\service\Redis-x64-3.2.100-1redis-server --service-install --service-name sentinel-1 sentinel.conf --sentinel
[20700] 07 Jul 12:01:21.297 # Granting read/write access to NT AUTHORITY\NetworkService on: D:\service\Redis-x64-3.2.100-1 D:\service\Redis-x64-3.2.100-1\
[20700] 07 Jul 12:01:21.300 # Redis successfully installed as a service.D:\service\Redis-x64-3.2.100-2redis-server --service-install --service-name sentinel-2 sentinel.conf --sentinel
[15772] 07 Jul 12:01:33.942 # Granting read/write access to NT AUTHORITY\NetworkService on: D:\service\Redis-x64-3.2.100-2 D:\service\Redis-x64-3.2.100-2\
[15772] 07 Jul 12:01:33.944 # Redis successfully installed as a service.此时D:\service\Redis-x64-3.2.100-1\sentinel.conf哨兵运行在26379端口 ,生成哨兵IDSentinel IDCopysentinel myid a2e75eedaf161357fe03df490a14b4158ad3ba88也生成了如下内容能监控到从slave服务6380的redis、slave6381的redis,也能监控到其他的哨兵分别运行在26380、26381端口Copy# Generated by CONFIG REWRITE
dir D:\\service\\Redis-x64-3.2.100-1
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel known-slave mymaster 127.0.0.1 6380
sentinel known-slave mymaster 127.0.0.1 6381
sentinel known-sentinel mymaster 127.0.0.1 26380 a2e75eedaf161357fe03df490a14b4158ad3ba88
sentinel known-sentinel mymaster 127.0.0.1 26381 fc076362c0a5cc71d3c72f71c00a15b2726b2bf8
sentinel current-epoch 0
在主master redis中查看redis当前信息CopyPS E:\Program Files\Redis redis-cli -p 6379
127.0.0.1:6379 info replication
# Replication
role:master
connected_slaves:2
slave0:ip127.0.0.1,port6381,stateonline,offset141627,lag1
slave1:ip127.0.0.1,port6380,stateonline,offset141627,lag0
...ctrlc退出查看redis6380信息CopyPS E:\Program Files\Redis redis-cli -p 6380
127.0.0.1:6380 info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:161451
slave_priority:100
slave_read_only:1
connected_slaves:0
...高可用测试1.主服务器Master 挂掉停止 6379服务CopyC:\WINDOWS\system32redis-cli -p 6379
127.0.0.1:6379 shutdown
not connected
或
C:\WINDOWS\system32net stop redis6379中sentinel_log.log,可见当6379redis服务挂 了后此日志表明redis在failover后错误重试switch-master切换为6380Copy[240] 07 Jul 12:16:15.015 # sdown master mymaster 127.0.0.1 6379
[240] 07 Jul 12:16:15.086 # odown master mymaster 127.0.0.1 6379 #quorum 2/2
[240] 07 Jul 12:16:15.086 # new-epoch 1
[240] 07 Jul 12:16:15.086 # try-failover master mymaster 127.0.0.1 6379
[240] 07 Jul 12:16:15.088 # vote-for-leader 207bd9abfe9283e32b6e0de3635e126bfdbba3b4 1
[240] 07 Jul 12:16:15.090 # a2e75eedaf161357fe03df490a14b4158ad3ba88 voted for 207bd9abfe9283e32b6e0de3635e126bfdbba3b4 1
[240] 07 Jul 12:16:15.091 # 14c6428bae2afc1d92b5159b0788dbba753ee85b voted for 207bd9abfe9283e32b6e0de3635e126bfdbba3b4 1
[240] 07 Jul 12:16:15.188 # elected-leader master mymaster 127.0.0.1 6379
[240] 07 Jul 12:16:15.188 # failover-state-select-slave master mymaster 127.0.0.1 6379
[240] 07 Jul 12:16:15.255 # selected-slave slave 127.0.0.1:6380 127.0.0.1 6380 mymaster 127.0.0.1 6379
[240] 07 Jul 12:16:15.255 * failover-state-send-slaveof-noone slave 127.0.0.1:6380 127.0.0.1 6380 mymaster 127.0.0.1 6379
[240] 07 Jul 12:16:15.338 * failover-state-wait-promotion slave 127.0.0.1:6380 127.0.0.1 6380 mymaster 127.0.0.1 6379
[240] 07 Jul 12:16:15.718 # promoted-slave slave 127.0.0.1:6380 127.0.0.1 6380 mymaster 127.0.0.1 6379
[240] 07 Jul 12:16:15.718 # failover-state-reconf-slaves master mymaster 127.0.0.1 6379
[240] 07 Jul 12:16:15.800 * slave-reconf-sent slave 127.0.0.1:6381 127.0.0.1 6381 mymaster 127.0.0.1 6379
[240] 07 Jul 12:16:16.217 # -odown master mymaster 127.0.0.1 6379
[240] 07 Jul 12:16:16.757 * slave-reconf-inprog slave 127.0.0.1:6381 127.0.0.1 6381 mymaster 127.0.0.1 6379
[240] 07 Jul 12:16:16.758 * slave-reconf-done slave 127.0.0.1:6381 127.0.0.1 6381 mymaster 127.0.0.1 6379
[240] 07 Jul 12:16:16.834 # failover-end master mymaster 127.0.0.1 6379
[240] 07 Jul 12:16:16.834 # switch-master mymaster 127.0.0.1 6379 127.0.0.1 6380
[240] 07 Jul 12:16:16.835 * slave slave 127.0.0.1:6381 127.0.0.1 6381 mymaster 127.0.0.1 6380
[240] 07 Jul 12:16:16.835 * slave slave 127.0.0.1:6379 127.0.0.1 6379 mymaster 127.0.0.1 6380
[240] 07 Jul 12:16:19.853 # sdown slave 127.0.0.1:6379 127.0.0.1 6379 mymaster 127.0.0.1 63806380redis 服务 日志,当6379服务挂了后6380成为主节点其他节点(6379、6381)成为从节点此时打开D:\service\Redis-x64-3.2.100-1\redis.windows-service.conf之前配置的slaveof 127.0.0.1 6379已经没有了。Copy[9404] 07 Jul 12:16:15.037 # sdown master mymaster 127.0.0.1 6379
[9404] 07 Jul 12:16:15.089 # new-epoch 1
[9404] 07 Jul 12:16:15.090 # vote-for-leader 207bd9abfe9283e32b6e0de3635e126bfdbba3b4 1
[9404] 07 Jul 12:16:15.104 # odown master mymaster 127.0.0.1 6379 #quorum 3/2
[9404] 07 Jul 12:16:15.104 # Next failover delay: I will not start a failover before Sun Jul 07 12:16:35 2019
[9404] 07 Jul 12:16:15.801 # config-update-from sentinel 207bd9abfe9283e32b6e0de3635e126bfdbba3b4 127.0.0.1 26381 mymaster 127.0.0.1 6379
[9404] 07 Jul 12:16:15.801 # switch-master mymaster 127.0.0.1 6379 127.0.0.1 6380
[9404] 07 Jul 12:16:15.802 * slave slave 127.0.0.1:6381 127.0.0.1 6381 mymaster 127.0.0.1 6380
[9404] 07 Jul 12:16:15.802 * slave slave 127.0.0.1:6379 127.0.0.1 6379 mymaster 127.0.0.1 6380
[9404] 07 Jul 12:16:18.812 # sdown slave 127.0.0.1:6379 127.0.0.1 6379 mymaster 127.0.0.1 6380此时查看 6380的信息,可以看到此时只有一个slave在线,其配置为127.0.0.1的6381端口Copyredis-cli -p 6380
127.0.0.1:6380 info replication
role:master
connected_slaves:1
slave0:ip127.0.0.1,port6381,stateonline,offset119281,lag1
master_repl_offset:119547
...2.6379服务再次启动当6379的服务启动后6379的服务将成为6380的从服务器slave再次通过 redis-cli -p 端口 输入 info replication查看对应服务的节点信息CopyPS E:\Program Files\Redis redis-server --service-start
或
C:\WINDOWS\system32net start redisPS E:\Program Files\Redis redis-cli -p 6380
127.0.0.1:6380 info replication
# Replication
role:master
connected_slaves:2
slave0:ip127.0.0.1,port6379,stateonline,offset339593,lag1
slave1:ip127.0.0.1,port6381,stateonline,offset339593,lag1
...3.slave 6381关闭此时查看6380的info可见此时只有一个从节点6379CopyC:\WINDOWS\system32net stop redis6381
role:master
connected_slaves:1PS E:\Program Files\Redis redis-cli -p 6380
127.0.0.1:6380 info replication
role:master
connected_slaves:1
slave0:ip127.0.0.1,port6379,stateonline,offset329392,lag1
master_repl_offset:329525
...相关链接Redis哨兵Sentinel模式 https://www.jianshu.com/p/06ab9daf921dwindows安装绿色版Redis - https://blog.csdn.net/ml863606/article/details/87456239主从配置(Windows版) https://www.cnblogs.com/cang12138/p/9132288.html#_label0csredis https://github.com/2881099/csredisCross-platform GUI management tool for Redis https://github.com/uglide/RedisDesktopManagerRedis in Windows的3.x版本 https://github.com/MicrosoftArchive/redisRedis in Windows的4.x版本 https://github.com/tporadowski/redisRedis in linux https://github.com/antirez/redisRedis高可用集群-哨兵模式Redis-Sentinel搭建配置教程【Windows环境】 https://aflyun.blog.csdn.net/article/details/79430105linux版Redis主从搭建建议大家看这个文章我一开始参考了其他的写完windows版才看到这个链接关于深入剖析Redis系列https://juejin.im/post/5b76e732f265da4376203849