关于java:Redis保姆级教程互联网分布式技术

55次阅读

共计 1758 个字符,预计需要花费 5 分钟才能阅读完成。

在理论开发工作中,常常会遇到音讯公布、订阅的利用场景,就好象是电台播送,只有你收听了某个频道,那么在这个频道上播放的内容你都可能听到,没有收听的天然也就听不到,很多开源工具都对这种设计模式有很好的反对,比方 RabbitMQ 中就有 Pub/Sub 音讯队列。同样 Redis 也反对这种模式的音讯公布,而且非常简单。那么上面就来一起学习吧!

一. Redis 音讯的公布与订阅

1)Redis 公布订阅

Redis 公布订阅 (pub/sub) 是一种音讯通信模式:发送者 (pub) 发送音讯,订阅者 (sub) 接管音讯。Redis 客户端能够订阅任意数量的频道。

2)Redis 公布订阅示意图

图一:音讯订阅者 (client2、client5 和 client1) 订阅频道 channel1:

图二:音讯发布者公布音讯到频道 channel1,会被发送到三个订阅者:

3)Redis 公布订阅的常用命令

1.1 subscribe

语法:subscribe channel [channel…]

性能:订阅一个或多个频道的信息

返回值:订阅的音讯

1.2 publish

语法:publish chanel message

性能:将信息发送到指定的频道。

返回值:数字。接管到音讯订阅者的数量。

1.3 psubscribe

语法:psubscribe pattern [pattern]

性能:订阅一个或多个合乎给定模式的频道。模式以  作为通配符,例如:news. 匹配所有以 news. 结尾的频道。

返回值:订阅的信息。

二、Redis 的主从复制

 1)主从复制

主机数据更新后依据配置和策略,主动同步到从机的 master/slave 机制,Master 以写为主,Slave 以读为主。

2)一主二从

1.1 一主二从原理

  • 配从 (库) 不配主(库)
  • 配从(库): slaveof 主库 IP 主库端口
  • 主写从读、读写拆散
  • 从连前后同
  • 主断从待命、从断从新连

1.2 一主二从搭建

3)一台服务器模仿三台主机:

第一步:将 redis.conf 拷贝三份,名字别离是,redis6379.conf,redis6380.conf,redis6381.conf\
第二步:批改三个文件的 port 端口,pid 文件名,日志文件名,rdb 文件名

如:

port 6379

pidfile /var/run/redis_6379.pid

logfile “6379.log”

dbfilename dump6379.rdb\
第三步:别离关上三个窗口模仿三台服务器,开启 redis 服务。

4)从连前后同

5)主断从待命、从断从新连

三、一主二从搭建

1、一台服务器模仿三台主机:

第一步:将 redis.conf 拷贝三份,名字别离是,redis6379.conf,redis6380.conf,redis6381.conf\
第二步:批改三个文件的 port 端口,pid 文件名,日志文件名,rdb 文件名

如:

port 6379

pidfile /var/run/redis_6379.pid

logfile “6379.log”

dbfilename dump6379.rdb\
第三步:别离关上三个窗口模仿三台服务器,开启 redis 服务。

2、查问主从信息:info replication

3、写操作 6379:

4、设置主从关系:

在 6380 和 6381 主机上别离执行命令:slaveof 127.0.0.1 6379

另一种形式,就是批改 6380 和 6381 的配置文件,在最初加上:

留神:如果主 redis 设置了明码,从库的 redis.conf 中还须要设置 masterauth 为主 redis 的明码。

5、全量复制:在 6380 和 6381 别离执行命令 get k1

6、增量复制:6379 执行命令:set k2 v2。而后 6380 端口和 6381 端口,别离执行命令:get k2

7、主写从读、读写拆散:在 6380 和 6381 上执行写操作 set k3 v3

8、主机宕机:6379 执行指令 shutdown,并查看 6380 和 6381 的 redis 信息

从机原地待命。

9、主机宕机后复原:重启 6379,并且执行写命令 set k4 v4;6380 和 6381 上别离执行 get k4

主机重启后,一切正常。

10、从机宕机:6380 执行指令 shutdown,并查看 6379 和 6381 的 redis 信息

总的来说两者的区别在于音讯队列是抢音讯,只有一个失去,而公布订阅是所有订阅的人都会失去。

正文完
 0