redis 一主多从 哨兵机制配置

压测命令:redis-benchmark -h 175.6.68.35 -p 6379 -c 500 -n 10000

在cmd  进入redis安装目录  输入管道命令:
 mysql  -h 175.6.68.35 -uroot -pyt@2018 mtt0526 --default-character-set=utf8 --skip-column-names --raw < cp_car.sql | redis-cli --pipe

卸载服务
指令:redis-server --service-uninstall,如下图表示卸载成功


出现cmd命令窗口  输入 redis-server.exe redis.conf进行连接服务器即可,然后会出现端口6379


Redis问题——Error: 磁盘在使用中,或被另一个进程锁定。
解决方案:
Redis出于对数据保护,默认只能本地客户端连接。远程连接就会出现以上错误。如何解决这一问题,看下:
server -A,PC-A,
修改server-A的redis.conf:注释掉本地绑定;
bind 127.0.0.1 表示指定绑定本机IP,为了保护数据,也可以绑定指定IP
bind 127.0.0.1 10.140.116.20

打开CMD  进入redis安装目录,  执行 -h [目标IP] -p [端口] 
config set protected-mode no;暂时关闭保护模式,redis服务重启后需要再次执行一次。

根据这些配置文件安装3个redis服务。

打开CMD控制台,进入D:\tongjiao\Redis-x64-3.2.100>目录,分别运行3个命令:

1.redis-server.exe --service-install redis.6380.conf --service-name redis6380

port 6380
loglevel notice
logfile "D:/anzhuanggj/redis/Redis_6379/logs/redis6380_log.txt"
appendonly yes
appendfilename "appendonly.6380.aof"
cluster-enabled no
cluster-config-file "nodes.6380.conf"
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes
slaveof 127.0.0.1 6382
masterauth "nuobaide123456"
requirepass "nuobaide123456"
# Generated by CONFIG REWRITE
dir "D:\\anzhuanggj\\redis\\Redis_6379"
 

2.redis-server.exe --service-install redis.6381.conf --service-name redis6381

port 6381
loglevel notice
logfile "D:/anzhuanggj/redis/Redis_6379/logs/redis6381_log.txt"
appendonly yes
appendfilename "appendonly.6381.aof"
cluster-enabled no
cluster-config-file "nodes.6381.conf"
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes
slaveof 127.0.0.1 6382
masterauth "nuobaide123456"
requirepass "nuobaide123456"
# Generated by CONFIG REWRITE
dir "D:\\anzhuanggj\\redis\\Redis_6379"
 

3.redis-server.exe --service-install redis.6382.conf --service-name redis6382

port 6382
loglevel notice
logfile "D:/anzhuanggj/redis/Redis_6379/logs/redis6382_log.txt"
appendonly yes
appendfilename "appendonly.6382.aof"
cluster-enabled no
cluster-config-file "nodes.6382.conf"
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

masterauth "nuobaide123456"
requirepass "nuobaide123456"
# Generated by CONFIG REWRITE
dir "D:\\anzhuanggj\\redis\\Redis_6379"


 


管理员权限允许CMD  往windows 添加哨兵服务

哨兵配置文件

文件名:sentinel.conf

port 26379
sentinel myid b6d05d09a53fdf927bf23b6bcc59556b1e3ca318
sentinel monitor mymaster 127.0.0.1 6382 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 15000
sentinel auth-pass mymaster nuobaide123456

文件名:sentinel.conf

port 26479
sentinel myid 4b9b7c84b2ff8f3976790cd1206d235d6d560b4d
sentinel monitor mymaster 127.0.0.1 6382 2
sentinel down-after-milliseconds mymaster 3000
sentinel failover-timeout mymaster 15000
sentinel auth-pass mymaster nuobaide123456

文件名:sentinel.conf

port 26579
sentinel myid 4b9b7c84b2ff8f3976790cd1206d235d6d560b4d
sentinel monitor mymaster 127.0.0.1 6382 2
sentinel down-after-milliseconds mymaster 3000
sentinel failover-timeout mymaster 15000
sentinel auth-pass mymaster nuobaide123456

文件名:sentinel.conf

port 26679
sentinel myid 4b9b7c84b2ff8f3976790cd1206d235d6d560b4d
sentinel monitor mymaster 127.0.0.1 6382 2
sentinel down-after-milliseconds mymaster 3000
sentinel failover-timeout mymaster 15000
sentinel auth-pass mymaster nuobaide123456

添加windows服务 

sc create RedisSentinel binpath= "\"D:\anzhuanggj\redis\Redis_6379\redis-server.exe\" --service-run sentinel.conf --sentinel --loglevel verbose" start= auto

sc create RedisSentinel_26479 binpath= "\"D:\anzhuanggj\redis\Redis_6379\redis-server.exe\" --service-run sentinel26479.conf --sentinel --loglevel verbose" start= auto

sc create RedisSentinel_26579 binpath= "\"D:\anzhuanggj\redis\Redis_6379\redis-server.exe\" --service-run sentinel26579.conf --sentinel --loglevel verbose" start= auto

sc create RedisSentinel_26679 binpath= "\"D:\anzhuanggj\redis\Redis_6379\redis-server.exe\" --service-run sentinel26679.conf --sentinel --loglevel verbose" start= auto

搭建好哨兵之后,哨兵一启动,过了30秒就会判断master sdown,但是检查配置是没有问题。
原因是没有设置节点认证的密码,也就是我的redis设置了节点通信的密码,那么在哨兵里面也是需要配置的。
即在哨兵配置文件中添加
sentinel auth-pass mymaster xxxx
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.redis支持的数据结构 string list hash set zset(基本回答) 加分项:另外redis还对这几种数据结构做了扩展,如GEO对位置计算,hyperLogLog做统计,bitmaps:redis底层存储value值都是存储的二进制数据,redis提供bitmaps(位图)可以直接访问或修改底层存储的二进制数据 2.redis线程模型 redis是单线程实现。 3.redis 提供的持久机制 redis 支持rdb和aof两种持久机制,redis4.0后支持混合持久化。rdb是定时的持久机制,宕机有可能会丢失最后一次持久化之后存在数据丢失。aof是基于操作日志追加的持久机制。(基本回答) 加分项: 1.rdb持久化原理 原理是redis会单独创建(fork)一个与当前进程一模一样的子进程来进行持久化, 这个子线程的所有数据(变量。环境变量,程序程序计数器等)都和原进程一模一样,会先将数据写入到一个临时文件中, 待持久化结束了,再用这个临时文件替换上次持久化好的文件 2.他什么时候fork子进程,或者什么时候触发rdb持久化机制 shutdown时,如果没有开启aof,会触发 配置文件中默认的快照配置 执行命令save或者bgsave save是只管保存,其他不管,全部阻塞 bgsave: redis会在后台异步进行快照操作,同时可以响应客户端的请求,但是在调用fork函数时是阻塞的,很快,可以忽略不计 执行flushall命令 但是里面是空的,无意义 3.aof原理? 原理是将Reids的操作日志以追加的方式写入文件,读操作是不记录的 2.触发机制(根据配置文件配置项) no:表示等操作系统进行数据缓存同步到磁盘(快,持久化没保证) always:同步持久化,每次发生数据变更时,立即记录到磁盘(慢,安全) everysec:表示每秒同步一次(默认值,很快,但可能会丢失一秒以内的数据) 以下问题都是基本回答: 4.redis支持事务吗 redis可以说是半支持事务(假事务),提供了一些在一定程度上支持线程安全和事务的命令。例如:multi/exec watch inc等。但是redis的事务并不支持回滚,即可以两个命令可以同时提交执行,但是如果有失败,成功的也不会回滚 5.你们公司使用的是什么集群模式 看你写的项目经验,如果你们公司数据量特别大,公司用缓存牛逼,就说Rediscluster,小公司可以说哨兵集群 1.哨兵模式 基本回答:哨兵主要就是启动哨兵redis特殊)节点,对主节点进行监控,如果半数以上发现ping主节点不通了,认为主节点挂了,则进行故障转移,就是选出一个从节点代替主节点 2.Rediscluster集群模式 基本回答:Rediscluster是一个高可用集群,它基于分片(对key进行crc16,然后对16384取余)的原理,可以把他理解为是由多组哨兵集群组成,但是它不依赖哨兵 6.缓存穿透 缓存穿透指的是使用不存在的key进行大量的高并发查询,这导致缓存无法命中,每次请求都要穿透到后端数据库系统进行查询,数据库压力过大。 常用解决方案:将空值缓存起来。 其他解决方案:使用布隆过滤器(guava 19开始已支持布隆过滤器) 备注:如果你可以理解太白老师讲的基于redis位图自己实现的布隆过滤器,可以说说,更加分 7.缓存击穿 缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力 解决方案:1.互斥锁 如果项目不会多部署则可以使用jvm锁,如果会多部署则使用分布式锁 8.缓存雪崩 缓存雪崩指缓存服务器重启或者大量缓存集中在某一个时间段内失效 常用解决办法: 1.主要就是要搭建高可用集群,保证机器的高可用。 2.对不同的数据使用不同的失效时间,甚至对相同的数据、不同的请求使用不同的失效时间。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值