一、redis事务

放在一个队列里,依次执行,并不保证一致性。与mysql事务不同。
命令:
1、MULTI
2、EXEC
3、DISCARD
4、WATCH
5、UNWATCH
正常执行
在这里插入图片描述

放弃事务
在这里插入图片描述

全体连坐 编译错误 都不执行
在这里插入图片描述

冤头债主 错误的不执行 正确的执行
在这里插入图片描述

监控 监控就有sql事务的意思了,如果监控的值改变了,则所有都不执行在这里插入图片描述

在这里插入图片描述

二、管道

2.1 事务与管道的区别

原子性:事务保证所有命令的原子性,要么全部执行,要么全部放弃。管道不保证原子性,每个命令独立执行。
错误处理:事务中如果存在语法错误,整个事务会失败。管道中如果存在语法错误,只有该命令会返回错误,其它命令仍会执行
使用场景:事务适用于需要原子性保证的操作场景,管道适用于批量发送命令以减少网络延迟的场景。

这里事务具有原子性…??redis事务并不具有原子性啊,一条语句失败(运行时错误)并不影响其他的执行。 待考究…

但是知道应用就行,它们的设计目标和使用场景不同:事务更多用于需要保证顺序执行的场景,而管道则用于提高性能、减少网络延迟的场景。

事务中的操作并不是一起传输到服务器,但是管道中的操作是这样。

三、主从复制

3.1

只有一台机的话,读写性能不好,压力大。
可以使用主从复制,主机做写操作,从机做读操作。减轻主机的读压力。
配从不配主
master以写为主,slave以读为主
当master数据变化时,自动将新的数据异步同步到其他slave数据库。

3.2 权限细节

master如果配置了 requirepass 参数,需要密码登录
slave 需要配置 masterauth来设置检验密码,否则的话master会拒绝slave的访问请求

3.3 基本操作命令

info replication   查看复制节点的主从关系和配置信息
    
replicaof 主库IP 主库端口  一般写入进redis.conf配置文件内,在运行期间修改slave节点的信息,如果该数据库已经某个数据库的从数据库,那么会停止和原主数据库的同步关系转而和新的主数据库同步

slaveof 主库IP 主库端口  一般在命令行执行。

slaveof no one      使当前数据库停止与其他数据库的同步,升级为主数据库

3.4 常用

3.4.1 一主几从

在这里插入图片描述

从机 一定要加上 -p 端口号 不然就是默认6397.

在这里插入图片描述
答案:
1 从机不可以执行写命令。
2 主机先开启并且已经有数据了,这时候从机才连上,不要紧,从机会有一个主机的完整快照,以便与主机数据一致,并且从机如果原始有数据的话,会被主机的内容覆盖掉。
3 从机不会上位,只会原地听命。
4 主机shutdown之后,,重启后主从关系依然在,从机也能够顺利复制。
5 可以
但是这都是建立在是在配置文件中写死了主从关系的,如果使用slaveof 主库IP 主库端口 一般在命令行执行 在命令行执行的话,从机shutdown之后,主从关系就没有了。

3.4.2 薪火相传

一主几从的话,主机需要传相同的内容给不同的从机,也会影响主机性能。
在这里插入图片描述
在这里插入图片描述

由于192.168.111.172仍然是一个从机,所以还是只能读,不能写。

3.4.3 反客为主

谁也不依附,自己变为master,之前的数据仍然存在。
在这里插入图片描述

3.5 步骤

在这里插入图片描述
在这里插入图片描述

3.6 缺点

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部