Redis集群配置
1.订阅发布
1)测试
订阅端:
192.168.72.128:6379> subscribe rzp
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "rzp"
3) (integer) 1
//等待读取推送的消息
1) "message" //消息
2) "rzp" //来自哪个频道
3) "hahahah" //消息内容
发送端:
192.168.72.128:6379> publish rzp hahahah
(integer) 1
192.168.72.128:6379>
2)原理
通过Subsribe命令订阅某个频道后,redis-server维护了一个字典,字典的健就是频道,字典的值则是一个链表,链表中保存了所有订阅这个频道的客户端,Subscribe命令的关键,就是将客户端添加到给定频道的订阅链表中
通过Publish命令向订阅者发送消息,redis-server会使用给定的频道作为健,在它所维护的频道字典中查找订阅了这个频道的所有客户端的链表,遍历链表,将消息发布给订阅者
使用场景:
1.实时消息系统
2.实时聊天
3.订阅、关注系统
2.集群环境搭建
1.环境配置
1)进入redis查看当前库信息 info replication
role:master //角色 主机
connected_slaves:0 //没有从机
master_failover_state:no-failover
master_replid:f303d6da925581cc900980c0ed3062a81be7db3b
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
2)配置属性文件(要求有几个服务器就有几个相同的属性文件)
假设有3个服务器,在redisconfig文件夹下复制redis.conf
编辑79
修改日志文件名
编辑80
修改端口号
修改PID
修改日志
编辑81与80步骤相同
启动服务
2.设置主机(举例1主2从)
主机登录后不需要配置,配置从机
从机的信息
主机中可查看从机的配置
真实的主从配置是需要在配置文件中配置,永久生效,上面使用的命令行是暂时的
3.复制原理
Slave启动成功连接到master后会发送一个sync命令
Master接到命令,启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,并完成一次完全同步
全量复制:Slave服务在接收到数据库文件数据后,将其存盘并加载到内存中
增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步
只要重新连接master,一次完全同步(全量复制)将被自动执行
如果运行过程中,主服务器宕机了,可以通过命令临时修改某服务器为主服务器 slaveof no one
4.哨兵模式
哨兵是一个独立的进程,需要单独设置并监视各服务器
1)首先在统一路径下配置哨兵配置文件
编辑配置文件(第三位为哨兵名,可任意,仅监视了主机),保存退出即可(以下命令为基础命令,还有其他设置)
2)启动哨兵
显示界面
主动关闭主服务器,一段时间后哨兵会发现主服务器宕机然后投票选举一个从机作为主机
如果主机此时回来了,只能归并到新的主机下,并当做从机
5.分布式锁
通过对锁设置过期时间释放锁
加锁时同时设置过期时间
Jedis使用方法
本文来自博客园,作者:面向机器编程,转载请注明原文链接:https://www.cnblogs.com/face-to-machine-program/articles/16266182.html