Redis高可用高性能缓存的应用系列的第二篇,主要介绍Redis事务机制和IO多路复用、和持久化的知识点。
Redis事务机制,和Mysql有大的不同,分为4步进行执行:
1.事务提交前,先检查命令语法是否正确2.提交命令后,一定会被执行3.有命令报错也会执行完4.不能回滚Redis事务和批量操作的区别:Redis在执行exec时,命令要么执行,要么都不执行,批量操作不会检查语法。
(资料图)
Redis事务命令说明:
multi:告诉Redis开启一个事务(注意只是开启,而不是执行)exec: 告诉Redis开始执行事务discard:告诉Redis取消事务watch:监视某一个键值对,它的作用是在事务执行之前,如果监视的键值被修改,事务会被取消当执行multi命令后,表明Redis开启一个事务,在执行后续的命令都属于在排队中,执行exec命令时,Redis事务的命令要么全部执行,要么全不执行。
redis-cli> set name "stark"OKredis-cli> multiOKredis-cli> set name "stark张宇"QUEUEDredis-cli> set age 33QUEUEDredis-cli> exec1) OK2) OK
如果因为执行的命令语法错误,整个Redis的事务会被服务驳回,全部不执行。
redis-cli> multiOKredis-cli> set name "stark张宇"QUEUEDredis-cli> lpop "changchang" "quanquan" "xiaoshenyang"QUEUEDredis-cli> exec(error) wrong number of arguments (given 3, expected 1)
如果语法没有错误,在执行过程中数据有错误抛出,Redis也会全部执行,只要语法正确,命令都会被执行。
redis-cli> multiOKredis-cli> set name "stark张宇"QUEUEDredis-cli> lpop nameQUEUEDredis-cli> exec1) OK2) WRONGTYPE Operation against a key holding the wrong kind of value
首先要说明一点,redis采用单线程处理请求, 假设服务器是4核的CPU,只会占用一个,其他3个都不进行参与,在线程处理上是并行的。
Redis 6.0版本后对这里进行了优化,使用了I/O thread概念,Redis 6.0的主进程只做计算,不在参与读写操作,I/O thread 处理上都是并行的关系,充分利用了多核CPU的优势,节省了处理时间,提升了处理请求的性能。
Redis的数据是保存在内存中的,所以当服务器重启时会造成数据丢失,Redis提供了数据持久化方案,把数据保存到磁盘上,使用文件恢复数据,主要有3种持久化方式:
rdb : 生成某一时刻的快照,然后保存在二进制文件中aof :记录每一条命令,追加到文件中,打开可以看到具体的操作记录混合模式:它是上面两种方式的结合手动触发save ,会让Redis处于阻塞状态,直到rdb持久化完成,线上环境要谨慎使用bgsave ,它会fork出一个子进程,用来执行持久化,主进程继续响应客户端请求,它会有短暂的阻塞2.自动触发
在m秒内,执行命令最终执行的是bgsavebgsave的执行过程:1)首先,redis主进程fork出子进程,2)子进程会共享子进程的数据,并把主进程设置成read only,然后开始执行持久化的操作,当有新命令要修改数据时,Redis采用写实复制的方法来解决数据不一致的问题。
优点:
容灾性好,方便备份性能最大化,fork出一个子进程来操作,对主进程没有影响数据比较多时,相对于aof启动效率比较高缺点:
假如中间发生故障,故障期间会造成数据丢失Aof的重写策略:因为在Redis操作的过程中有很多命令都是对同一个key进行操作,会造成大量的命令重复,造成Aof文件过大,而整理出的解决方案。
手动触发,执行bgrewriteaof命令自动触发auto-aof-rewrit-precentage
:当前Aof文件大小和最后一次重写后的大小之间的比率等于或者是等于指定的增长百分比,如100是代表当前Aof文件是上次重写的两倍时候才重写的。
auto-aof-rewrit-mini-size
:当Aof文件大小大于该值时候才可能重写。
优点:数据安全,不会造成数据的丢失
缺点:比rdb重启效率低,运行效率比rdb低
下一篇:最后一页
广告
X 关闭
广告
X 关闭
科学家培育出不传播疟疾的蚊子 可阻止致命寄生虫传播并消除疟疾传播
2023-01-29“毅力”号在火星发现古老生命痕迹 是首次从火星返回样本
2023-01-29欧盟提出紧急措施干预高价能源 对能源超额利润征税
2023-01-29升温超1.5℃可引发7个气候临界点 改变就会不可逆转
2023-01-29韩国核聚变反应堆30秒达到1亿摄氏度 提高了核心等离子体温度
2023-01-29全球大多数碳捕获项目未达标 一些二氧化碳捕获量仅为承诺的一半
2023-01-29渔业活动是海洋垃圾带“罪魁祸首” 86%是被渔船遗弃或丢失物品
2023-01-29头发为何乱蓬蓬?可能患有遗传引起的蓬发综合征
2023-01-29超热蒸汽洗碗25秒杀死细菌 可作为医疗器械消毒
2023-01-29“悬浮”纳米粒子助力量子计算 或为精密灵敏的测量设备铺平道路
2023-01-29