采用 Redis+数据库为某互联网文化公司建立网上社区平台

目录

案例

【说明】

【问题 1】(10 分)

【问题 2】(7 分)

【问题 3】(8 分)

【答案】

【问题 1】解析

【问题 3】解析

相关推荐


案例

        阅读以下关于数据库缓存的叙述,回答问题 1 至问题 3。

【说明】

        某互联网文化发展公司因业务发展,需要建立网上社区平台,为用户提供一个对网络文化产品(如互联网小说、电影、漫画等)进行评论、交流的平台。该平台的部分功能如下:

        (a)用户帖子的评论计数器;
        (b)支持粉丝列表功能;
        (c)支持标签管理;
        (d)支持共同好友功能等;
        (e)提供排名功能,如当天最热前 10 名帖子排名、热搜榜前5排名等;
        (f)用户信息的结构化存储;
        (g)提供好友信息的发布/订阅功能。

        该系统在性能上需要考虑高性能、高并发,以支持大量用户的同时访问。开发团队经过综合考虑,在数据管理上决定采用 Redis+数据库 (缓存+数据库)的解决方案。

【问题 1】(10 分)

        Redis 支持主富的数据类型,并能够提供一些常见功能需求的解决方案。请选择题干描述的(a)~(g)功能选项,填入表 4-1 中(1)~(5)的空白处。

表 4-1 Redis 数据类型与业务功能对照表
数据类型存储的值可实现的业务功能
STRING字符串、整数或浮点数(1)
LIST列表(2)
SET无序集合(3)
HASH包括键值对的无序散列表(4)
ZSET有序集合(5)

【问题 2】(7 分)

        该网上社区平台需要为用户提供 7*24 小时的不间断服务。同时在系统出现宕机等故障时,能在最短时间内通过重启等方式重新建立服务。为此,开发团队选择了 Redis 持久化支 持。Redis 有两种持久化方式,分别是 RDB(Redis DataBase)持久化方式和 AOF(Append 0nly File)持久化方式。开发团队最终选择了 RDB 方式。

        请用 200 字以内的文字,从磁盘更新频率、数据安全、数据一致性、重启性能和数据文件大小五个方面比较两种方式,并简要说明开发团队选择 RDB 的原因。

        RDB磁盘更新频率更优,远远高于AOF的磁盘更新频率。

        RDB数据安全缓存明显优于AOF。

        RDB数据一致性要高于AOF。
        RDB是以数据存储,而AOF以文件存储,会有很多附加字符,文件大于RDB。

【问题 3】(8 分)

        缓存中存储当前的热点数据,Redis 为每个 KEY 值都设置了过期时间,以提高缓存命中率。为了清除非热点数据,Redis 选择"定期删除+惰性删除”策略。如果该策略失效,Redis 内存使用率会越来越高,一般应采用内存淘汰机制来解决。

        请用 100 字以内的文字简要描述该策略的失效场景,并给出三种内存淘汰机制。

【答案】

        本题考查数据库缓存的基本概念和具体应用。

【问题 1】解析

        本问题考查 Redis 数据库缓存产品基本数据类型的常见应用。
        (1)STRING 类型:常规的key/value 缓存应用,常规计数如粉丝数等;
        (2)LIST 类型:各类列表应用,如关注列表、好友列表、订阅列表等;
        (3)SET 类型:与LIST 类似,但提供去重操作,也提供集合操作,可实现共同关注、共同喜好、共同好友等功能;
        (4)HASH类型:存储部分变更数据,如用户数据等;
        (5)ZSET 类型:类似 SET 但提供自动排序,也可实现带权重的队列,如各类排行榜等。

        答案:

        (1)(a)
        (2)(b)、(g)
        (3)(c)、(d)
        (4)(f)
        (5)(e)

【问题 2】解析

        本问题考查 Redis 持久化存储的基本概念及应用。Redis提供了两种持久化存储的机制,分别是RDB(Redis DataBase)持久化方式和 AOF(Append 0nlyFile)持久化方式。RDB 持久化方式是指在指定的时间间隔内将内存中的数据集快照写入磁盘,是 Redis 默认的持久化方式。AOF 方式是指 redis 会将每一个收到的写命令都通过 write 函数追加到日志文件中。两种方式各有优缺点,大致的比较如下:
        (1)磁盘更新频率:AOF比 RDB 文件更新频率高。
        (2)数据安全:AOF 比 RDB 更安全。
        (3)数据一致性:RDB间隔一段时间存储,可能发生数据丢失和不一致;AOF 通过 append 模式写文件,即使发生服务器宕机,也可通过 redis-check-aof 工具解决数据一致性问题。
        (4)重启性能:RDB 性能比 AOF好。
        (5)数据文件大小:AOF文件比 RDB 文件大
        该项目的实际需求是:在系统出现宕机等故障时,需要在最短时间内通过重启等方式重 新建立服务,因此重启性能是最需要考虑的因素,故该开发团队选择 RDB 方式。

        答案:

        磁盘更新频率:AOF比 RDB 文件更新频率高。
        数据安全:AOF 比 RDB 更安全。
        数据一致性:RDB间隔一段时间存储,可能发生数据丢失和不一致;AOF 通过 append 模式写文件,即使发生服务器宕机,也可通过 redis-check-aof 工具解决数据一致性问题。
        重启性能:RDB 性能比 AOF好。
        数据文件大小:AOF文件比 RDB 文件大
        该项目的实际需求是:在系统出现宕机等故障时,需要在最短时间内通过重启等方式重 新建立服务,因此重启性能是最需要考虑的因素,故该开发团队选择 RDB 方式。

【问题 3】解析

        本问题考查 Rcdis使用过程中数据清除相关的概念。
        缓存中一般用来存储当前的热点数据,Redis 为每个KEY 值都设置了过期时间,以提高缓存命中率。为了清除非热点数据,Redis选择"定期删除+惰性删除”策略。
        “定期删除+惰性删除”策略也会存在失效的可能。比如,如果“定期删除”没删除KEY,也没即时去请求 KEY,也就是说“惰性删除”也没生效。这样,Redis默认的“定期删除+惰性删除”策略就失效了
        如果该策略失效,Redis 内存使用率会越来越高,一般应采用内存淘汰机制来解决。常见的内存淘汰机制有:
        (1)从已设置过期时间的数据集最近最少使用的数据淘汰。
        (2)从已设置过期时间的数据集将要过期的数据淘.
        (3)从已设置过期时间的数据集任意选择数据淘汰.
        (4)从数据集最近最少使用的数据淘汰
        (5)从数据集任意选择数据淘汰。

        答案:

        失效场景:如果“定期删除”没删除KEY,也没即时去请求 KEY,也就是说“惰性删除”也没生效。这样,Redis默认的“定期删除+惰性删除”策略就失效了。

        可采用的内存淘汰机制:

        (1)从已设置过期时间的数据集最近最少使用的数据淘汰。
        (2)从已设置过期时间的数据集将要过期的数据淘.
        (3)从已设置过期时间的数据集任意选择数据淘汰.
        (4)从数据集最近最少使用的数据淘汰
        (5)从数据集任意选择数据淘汰。

相关推荐

深入解析包裹信息管理系统:关系型数据库逻辑数据模型设计、超类实体与派生属性探讨-CSDN博客文章浏览阅读659次,点赞41次,收藏32次。本文探讨了关系型数据库开发中逻辑数据模型的设计过程,以包裹信息管理系统为例,详细分析了逻辑数据模型构建的任务,包括构建系统上下文模型、添加主键属性、非主键属性及规范化处理。同时,引入了超类实体的概念,用于抽象表示相似属性的实体。此外,还讨论了派生属性的识别与消除,以提升数据库设计的优化程度。https://shuaici.blog.csdn.net/article/details/1421820192015年系统架构师案例分析试题四-CSDN博客文章浏览阅读1.2k次,点赞35次,收藏40次。SQL 语句设计时,影响查询效率的设计原则是:●查询时尽量不要返回不需要的行、列;●需要进行多表连接查询时,尽量使用连接查询,避免使用子查询结构;●尽量避免采用 NOT IN、NOT EXIST、LIKE 等使用全表查询的操作;●尽量避免使用 DISTINCT 关键字https://shuaici.blog.csdn.net/article/details/1412211252017年系统架构师案例分析试题四-CSDN博客文章浏览阅读1.1k次,点赞49次,收藏43次。数据访问层常见的模式有 5 种 分别是:在线访问、Data Access Object、Data Transfer Object、离线数据模式、对象/关系映射(Object/Relation Mapping)。ORM,即 Object/Relationl Mapping,它在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的 SQL 语句打交道,只要像平时操作对象一样操作即可。https://shuaici.blog.csdn.net/article/details/1415622632019年系统架构师案例分析试题四-CSDN博客文章浏览阅读1.3k次,点赞72次,收藏48次。存在双写不一致问题,在写数据时,可能存在缓存写成功,数据库写失败,或者反之,从而造成数据不一致。当多个请求发生时也可能产生读写冲突的并发问题。 (a)从数据库中读取数据或读数据库; (b)更新缓存中 key 值或更新缓存; (c)数据库; (d)删除缓存 key 或使缓存 key 失效或更新缓存(key 值)。https://shuaici.blog.csdn.net/article/details/142059273

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1537456.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

海思Hi3559av100 sdk开发环境搭建

SDK阐释 海思官方给的sdk布局,如Hi3559AV100R001C02SPC031,其包含编译工具、硬件设计资料、软件sdk、文档等资料,tree布局可以构建如下形式,但不是必要的。 软件sdk在 01.software中,这个路径下才是真正的软件代码&…

嵌入式DCMI摄像头功能调试方法

STM32F407芯片带有DCMI接口,在我们的核心板上已经将接口用18PIN的FPC座子引出。 这个接口可以接我们的OV2640接口。 本节我们开始调试摄像头。 16.1. DCMI DCMI接口是ST自己定义的接口。 Digital camera interface (DCMI),是意法半导体公司产品STM32F4xx系列芯片的快速摄像头…

Redis 篇-初步了解 Redis 持久化、Redis 主从集群、Redis 哨兵集群、Redis 分片集群

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 分布式缓存概述 2.0 Redis 持久化 2.1 RDB 持久化 2.1.1 RDB 的 fork 原理 2.2 AOF 持久化 2.3 RDB 与 AOF 之间的区别 3.0 Redis 主从集群 3.1 搭建主从集群 3.2…

使用Tortoisegit完成基于Git提交日志的代码合并

前言 日常开发中除了分支merge合并外,经常会用cherry-pick,示例:git cherry-pick 29d9493d,如果要进行多次代码的遴选,可以借助git工具TortoixeGit,进行多次提交的遴选。 一、Git工具及常用命令 TortoiseGit工具 T…

第二十六篇——九地篇:九种形势的应对之道

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 地势的维度重新阐述了懂得人心的重要性,道久其归一为为别人。…

Village Exteriors Kit 中世纪乡村房屋场景模型

此模块化工具包就是你一直在寻找的适合建造所有中世纪幻想村庄和城市建筑所需要的工具包。 皇家园区 - 村庄外饰套件的模型和纹理插件资源包 酒馆和客栈、魔法商店、市政大厅、公会大厅、布莱克史密斯锻造厂、百货商店、珠宝商店、药店、草药师、银行、铠甲、弗莱切、马厩、桌…

【 html+css 绚丽Loading 】000051 方寸轮回矩

前言:哈喽,大家好,今天给大家分享今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 &#x1f…

Stable Diffusion Fooocus批量绘图脚本

当当当挡~,流动传热数值计算之余发布点AIGC相关文章,希望大家能喜欢~ 1 Stable Diffusion各种UI分析对比 提示:此部分主要是对SD各种界面的简要介绍和对比,只关注Fooocus批量绘图的读者可直接跳到第二部分。 Stable Diffusion …

Python画笔案例-052 绘制彩色递归六边形

1、绘制彩色递归六边形 通过 python 的turtle 库绘制 彩色递归六边形,如下图: 2、实现代码 绘制彩色递归六边形,以下为实现代码: """彩色递归六边形.py """ import turtledef draw_circle(radius,…

每日一题——第九十九题

// PrintUniqueChart.cpp : 此文件包含 “main” 函数。程序执行将在此处开始并结束。 // // 设计算法&#xff0c;打印如下图案&#xff1a; #include<stdio.h>int main() {int i, j;for (i 0; i < 5; i){//每行开始先打印空格//控制每行前的空格for (int space 0…

中秋之际,唱响工体!玛丽亚·凯莉2024演唱会北京站璀璨上演

续写传奇华章 启幕音乐盛典 中秋之际&#xff0c;全国数万乐迷翘首以待的音乐盛典如约而至。时隔多年&#xff0c;传奇天后玛丽亚凯莉惊艳开唱工体&#xff01; 夜幕降临&#xff0c;圆月高悬&#xff0c;在不绝于耳的欢呼声中&#xff0c;玛丽亚凯莉以一袭流光溢彩的礼服优雅…

KVM创建的虚拟机无法访问外网

基础环境如下&#xff1a; [rootlocalhost ~]# virsh domifaddr CentOS7_YFName MAC address Protocol Address -------------------------------------------------------------------------------vnet0 52:54:00:cb:a6:0d ipv4 192.168.…

【云原生监控】Prometheus之Alertmanager报警

Prometheus之Alertmanager报警 文章目录 Prometheus之Alertmanager报警概述资源列表基础环境一、部署Prometheus服务1.1、解压1.2、配置systemctl启动1.3、监控端口 二、部署Node-Exporter2.1、解压2.2、配置systemctl启动2.3、监听端口 三、配置Prometheus收集Exporter采集的数…

c++刷题

17.电话号码的组合 来源于题解思路&#xff1a; 双指针算法 283.移动零

springboot 集成轻量级规则编排引擎 LiteFlow 使用详解

目录 一、前言 二、流程编排概述​​​​​​​ 2.1 什么是流程编排 2.1.1 流程编排主要特征 2.1.2 流程编排应用场景 2.2 流程编排与工作流区别 2.2.1 定义上的差别 2.2.2 应用场景上的差别 2.2.3 技术实现上的差异 三、微服务中流程编排常用的技术 3.3.1 LiteFlow …

【2025】智慧居家养老服务平台的设计与实现、基于AI的居家养老服务平台、居家养老服务平台开发、智慧养老服务平台设计

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

Mamba环境配置教程【自用】

1. 新建一个Conda虚拟环境 conda create -n mamba python3.102. 进入该环境 conda activate mamba3. 安装torch&#xff08;建议2.3.1版本&#xff09;以及相应的 torchvison、torchaudio 直接进入pytorch离线包下载网址&#xff0c;在里面寻找对应的pytorch以及torchvison、…

面试官问:你如何看待加班?

面试官问&#xff1a;你如何看待加班&#xff1f; 面试官问&#xff1a;你如何看待加班&#xff1f;这类问题是比较常见的&#xff0c;出现频率相当高。有些同学看到这样的问题&#xff0c;就会断定这家公司估计是经常加班的&#xff0c;绝对的不能去&#xff01;&#xff01;…

如何制作一张动态壁纸? ------居然也和编程有关,简单总结一下下,因为我也很好奇哈哈(含实战代码和效果演示)

相关语言&#xff1a; html &#xff0c;css&#xff0c;JavaScript&#xff0c;c# c#的开发难度高&#xff0c;本文以前端三剑客为例。 理论基础 制作一款类似于Wallpaper Engine上的动态壁纸是一个有趣的项目&#xff0c;它涉及到一些基本的编程知识以及图形设计技能。下…

C++_类和对象(中、下篇)—— const成员函数、取地址运算符的重载、深入构造函数、类型转换、static成员、友元

目录 三、类和对象&#xff08;中&#xff09; 6、取地址运算符重载 1、const成员函数 2、取地址运算符的重载 四、类和对象&#xff08;下&#xff09; 1、深入构造函数 2、类型转换 3、static成员 4、友元 三、类和对象&#xff08;中&#xff09; 6、取地址运算…