- 注意: 撰写本文目的主要是为了给自己做一个备忘录,如果你学过Redis并且希望从本文中找到一些忘记的知识点,那么你可以阅读本文章。由于文章内讲解并不是很多,因此此文章并不适合小白入门使用。
1.事务
1.1事务简介
是什么:
- 可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,
按顺序地串行化执行而不会被其他命令插入,不允许加塞
。
能干嘛:
一个队列中,一次性、顺序性、排他性地执行一系列命令。
怎么玩:
- 常用命令
- Case1:正常执行
- Case2:放弃事务
- Case3:全体连坐
如果一个指令在加入事务时发生错误,则事务块中所有的指令失效。 - Case4:冤头债主
如果一个指令可以加入到事务中,但逻辑上是错误的,则在执行事务块中的语句时此语句会报错,但不会影响到其他的语句。 - Case5:watch监控
1.2.Redis事务命令
使用示例:
> MULTI
> set k1 v1
> set k2 v2
> get k2
> set k3 v3
> EXEC
输出结果:
OK
OK
"v2"
OK
1.3.watch监控
- 监视一个(或多个)key,如果在事务执行之前这个(或这些)key被其他命令所改动,那么事务将被打断。
监控
watch key
取消监控
unwatch
- 一旦执行了exec操作,之前加的监控锁都会被取消掉。
小结:
- 通过WATCH命令在事务执行之前监控了多个Keys,倘若在WATCH之后有任何Key的值发生了变化,EXEC命令执行的事务都将被抛弃,同时返回Nullmulti-bulk应答以通知调用者事务执行失败。
1.4.事务3阶段、3特性
3阶段
3特性
2.发布与订阅
2.1.是什么
- 进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
- 订阅/发布消息图:
2.2.命令
2.3.案例
3.主从复制
3.1.复制
是什么:
- 行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的mastre/slaver机制,Master以写为主,Slave以读为主。
能干嘛:
- 读写分离
- 容灾恢复
怎么玩:
- 1.配从(库)不配主(库)
- 2.从库配置:
(1).连接主库:slaveof 主库IP 主库端口
每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件
(2).Info replication:查看当前状态(主机或是备机以及其他状态) - 3.修改配置文件细节操作
- 4.常用3招
(1).一主二仆:一台主机,两台备机
(2).薪火相传:
(3).反客为主:
将从机设置为主机:SLAVEOF no one
,使当前数据库停止与其他数据库同步,转成主数据库。
3.2.复制原理
3.3.哨兵模式(sentinel)
是什么:
- 哨兵模式就是反客为主的自动版,能够后台监控主机是否故障,如果故障了就根据投票数自动将从库转为主库
使用步骤:
- 自定义的/myredis目录下新建
sentinel.conf
文件,名字绝对不能错。 - 配置哨兵,填写内容
sentinel monitor 被监控数据库名字(自己起个名字) 127.0.0.1 6379 1
# 上面最后一个数字1,表示主机挂掉后slave投票看让谁接替成为主机,得票数多的成为主机
- 启动哨兵
redis-sentinel /myredis/sentinel.conf
# 上述目录依照各自的实际情况配置,可能目录不同
3.4.复制的缺点
- 由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以Master同步到Slave机器有一定的延时,当系统很繁忙的时候,延时问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。
文集推荐:
Java基础方法集1
Python基础知识完整版
Spring Boot学习笔记
Linux指令进阶
Java高并发编程
SpringMVC基础知识进阶
Mysql基础知识完整版
健康管理系统学习花絮(学习记录)
Node.js基础知识(随手笔记)
MongoDB基础知识
Dubbo学习笔记
Vue学习笔记(随手笔记)
声明:发表此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本我们(QQ:981086665;邮箱:981086665@qq.com)联系联系,我们将及时更正、删除,谢谢。