redis
- 一、redis事务
- 二、管道
- 2.1 事务与管道的区别
- 三、主从复制
- 3.1
- 3.2 权限细节
- 3.3 基本操作命令
- 3.4 常用
- 3.4.1 一主几从
- 3.4.2 薪火相传
- 3.4.3 反客为主
- 3.5 步骤
- 3.6 缺点
一、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 缺点