欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > NoSQL——期末复习(6)第六章Redis重点思考题

NoSQL——期末复习(6)第六章Redis重点思考题

2025/2/21 3:30:00 来源:https://blog.csdn.net/r2931887650/article/details/144888079  浏览:    关键词:NoSQL——期末复习(6)第六章Redis重点思考题

1.Redis的常见应用场景。

1. (电商网站)秒杀抢购

2. (视频直播)消息弹幕

3. (游戏应用)游戏排行榜

4. (社交APP)返回最新评论/回复

1. 缓存

2. 排行榜

3. 计数器

4. 最热前N条数据

5. 分布式锁

6. 订阅发布

7. 限速

描述Redis的数据类型。

Redis 支持的数据类型有字符串、散列、列表、集合、有序集合。

Redis数据库的集群架构。

Redis支持三种主要的集群模式,分别是主从复制模式、哨兵模式、集群模式。

(1)主从复制模式

主节点复制形成从节点,主节点(Master)负责处理写入操作,而从节点(Slave)则是主节点的副本,用于处理读取操作和提供数据冗余。

(2)哨兵模式

在主从复制模式的基础上增加了自动故障转移的功能。哨兵节点(Sentinel)监控主节点和从节点的状态,当主节点出现故障时,哨兵会自动将一个从节点升级为新的主节点,并通知其他从节点和客户端新的主节点地址,以此来保证Redis服务的高可用性。

(3)集群模式

Redis集群模式通过数据分片来实现分布式存储。集群中的每个节点负责一部分数据(即一部分哈希槽),并且每个主节点可以有一个或多个从节点。集群模式不仅支持数据的自动分区,还支持主从复制和故障转移,从而实现了高可用性和可扩展性。

Redis的持久化方式是什么?各自的优缺点?

Redis提供两种持久化机制RDB(默认)(通过快照(内存中数据在某一时刻的状态记录)的方式实现持久化,根据快照的触发条件,将内存的数据快照写入磁盘,以二进制的压缩文件进行存储)和AOF机制(以独立日志的方式记录每次写的命令,重启时重新执行AOF文件中的命令恢复数据)

RDB优点:

(1)大规模的数据恢复,并且对数据恢复的完整性要求不高,使用RDB比AOF更高效

(2)以二进制压缩文件的形式存储,占用内存更小

(3)redis使用bgsave命令进行持久化,基本不会影响主进程,保证了redis的高性能

(1)只有一个文件 dump.rdb,方便持久化;

(2)容灾性好,一个文件可以保存到安全的磁盘;

(3)性能最大化,fork子进程来完成写操作,让主进程继续处理命令,所以是IO最大化。使用单独子进程来进行持久化,主进程不会进行任何 IO 操作,保证了Redis的高性能;

(4)相对于数据集大时,比 AOF 的启动效率更高;

缺点:

(1)数据安全性低;

(2)RDB 是间隔一段时间进行持久化,如果在持久化时Redis发生故障,会发生数据丢失。所以这种方式更适合数据要求不严谨的时候;

AOF优点:

(1)数据安全,AOF持久化可以配置 appendfsync 属性,有always属性,每进行一次命令操作就记录到AOF文件中一次;

(2)通过append模式写文件,即使中途服务器宕机,可以通过 redis-check-aof 工具解决数据一致性问题;

(3)AOF机制的rewrite模式。AOF文件没被 rewrite 之前(文件过大时会对命令 进行合并重写),可以删除其中的某些命令(比如误操作的 flushall);

缺点:

(1)AOF文件比RDB文件大,且恢复速度慢;

(2)数据集大的时候,比RDB启动效率低;

5.Redis的事务是什么?怎么操作实现?它和传统的MySQL数据库事务有什么不同。

1Redis的事务是一组命令的集合,本质是批处理(不会回滚)即将多个指令放入一个队列,并批量顺序执行且在执行过程中不会被其他客户端的命令请求打断。

2

开启事务: 使用MULTI命令开启事务。

添加命令: 在MULTI和EXEC之间,命令被添加到事务队列。

执行事务: 使用EXEC命令执行事务中的所有命令。

取消事务: 使用DISCARD命令取消事务。

3

命令执行时机:

Redis事务: Redis事务是命令的集合,可以批量提交。但在MULTI和EXEC之间,其他客户端也可以插入命令执行,Redis不会阻塞这些命令的执行。如果在执行事务之前,监视的键被其他客户端修改,整个事务将被取消。

MySQL事务: MySQL事务在开始时会对数据进行锁定,其他事务无法修改受影响的数据,直到当前事务提交或回滚。

原子性:

Redis事务: Redis事务不支持回滚(ROLLBACK)。如果在事务执行期间出现错误,部分命令可能会执行成功,而另一部分可能失败,Redis事务不会回滚已执行的命令。

MySQL事务: MySQL事务支持回滚操作,如果事务执行失败或被取消,可以回滚到事务开始前的状态。

持久性:

Redis事务: Redis事务默认情况下不写入磁盘,数据存储在内存中。如果Redis服务器宕机或重启,事务中的数据可能会丢失。

MySQL事务: MySQL事务通过日志机制将数据持久化到磁盘,保证在故障发生时能够恢复数据。

一致性:

Redis事务: 在Redis事务中,如果一组命令中的某些命令执行失败,可能会导致部分数据变化而另一部分没有变化,从而破坏了数据的一致性。

MySQL事务: MySQL事务能够确保事务内的所有操作要么全部成功,要么全部失败,保持了数据库的一致性。

总体来说,Redis事务主要用于一系列Redis命令的原子性执行,但不具备MySQL事务那样的ACID(原子性、一致性、隔离性、持久性)特性。MySQL事务提供了更强的一致性和持久性,可以在数据完整性方面提供更强的保障。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词