NoSQL-Assignment-2

1. 什么是 Redis?

REmote DIctionary Server(Redis)是一个开源的内存 NoSQL 数据库项目,它实现了一个分布式、内存键值存储,并具有可选的耐用性。

2. Redis的特点是什么?

  1. 读写速度极快
  2. 持久、可扩展
  3. 直接数据访问

3. Redis的数据结构有哪些?

  1. String
  2. List
  3. Hash
  4. Set
  5. Zset

4. Redis的发布与订阅功能是什么?

  • 发送者(发布者)不需要向特定的接收者(订阅者)发送消息。
  • 相反,发布的消息被归类到频道中,而不知道有哪些订阅者。
  • 订阅者对一个或多个频道表示兴趣,只接收感兴趣的信息,而不知道有哪些发布者。

5. Redis事务如何实现?

依靠原子性实现•要么处理所有命令,要么不处理任何命令。
EXEC 命令会触发事务中所有命令的执行。
如果客户端在调用 MULTI 命令之前,在事务上下文中失去了与服务器的连接,则不会执行任何操作。相反,如果调用 EXEC 命令,则会执行所有操作。

6. Redis最与众不同的数据结构式什么?有什么特点?

  1. Redis最与众不同的数据结构是:ZSet
  2. 特点:
    • 对排序集进行添加、删除或更新等操作的速度非常快
    • 由于元素是按顺序提取的,而不是事后排序,因此还可以通过得分或排名(位置)快速获取范围。

7. Redis如何快速实现过期?

Expire 命令可以为键设置过期时间,当键过期时,Redis 会自动删除该键。

8. 请描述一个实际应用场景,说明为什么选择使用 Redis数据库。

  • 场景:MySQL+ Redis 的组合使用,Redis 作为 MySQL 的缓存层使用,MySQL作为主要存储
  • 原因:Redis 是一个高性能的缓存数据库,可以快速读写数据,适合存储热点数据,提高系统性能。

9. 请简要介绍一下Cassandra是什么,以及它的主要特点是什么?

Cassandra 是:

  • 一种开源、可线性扩展、分布式和容错的 NoSQL 数据库。设计用于处理海量数据。

主要特点:

  • 大规模可扩展架构
  • 无主架构
  • 线性扩展性能
  • 无单点故障
  • 故障节点可轻松恢复
  • 具有灵活、动态的数据模型,可调整的数据一致性,多数据中心复制
  • 数据压缩效率高

10. Cassandra与传统关系型数据库的主要区别是什么?

  • 传统关系型数据库面向行设计,内部组织结构围绕行的处理,适合 OLTP场景
  • Cassandra 列族数据库面向列设计,主要处理列,适合 OLAP 场景

11. 什么是Cassandra的复制策略?如何配置数据的复制和分布?

复制策略是指 Cassandra 如何在集群中复制数据,放置数据副本

  • Cassandra 提供两种复制策略,包括SimpleStrategyNetworkTopologyStrategy
    • SimpleStrategy 用于只有一个数据中心的情况。SimpleStrategy 会在分区器选择的节点上放置第一个副本。之后,其余副本按顺时针方向放置在节点环中。
    • NetworkTopologyStrategy 用于有多个数据中心的情况。在网络拓扑策略中,会为每个数据中心分别设置副本。网络拓扑策略在环中按顺时针方向放置副本,直到到达另一个机架中的第一个节点

12. Cassandra的数据删除是如何工作的?有没有什么需要注意的地方?

  • Cassandra 使用标记删除的方式,而不是立即删除数据。标记删除的数据会在后续的清理过程中删除。
    注意的地方:
  • 如果标记删除的数据过多,会影响查询性能,因为查询时需要扫描和过滤这些标记删除的数据。
  • 需要注意Cassandra表的TTL(生存时间)设置,如果TTL设置不当,可能导致大量的tombstone积累。

13. Cassandra数据库中使用哪种查询语言?

Cassandra Query Language(CQL)是 Cassandra 数据库的查询语言。

14. Cassandra的设计目标是什么?

Apache Cassandra 的设计目标主要围绕着可扩展性、高可用性和无单点故障展开。

15. Cassandra的主要成分是什么?

Cassandra 的主要成分包括:

  • 节点
  • 数据中心
  • 集群
  • 分区器

16. 请描述一个实际应用场景,说明为什么选择使用 Cassandra数据库?

社交媒体的评论管理
Cassandra 面向列设计,适合处理大量数据,适合社交媒体评论管理场景,可以快速写入和读取评论数据,支持高并发读写操作。