Redis 数据库组织(必需)。

小夏 科技 更新 2024-01-31

什么是 Redis?

Redis是基于C语言开发的开源数据库,与传统数据库不同,Redis数据存储在内存(in-memory database)中,读写速度非常快,在缓存方向上应用广泛。 此外,Redis 还存储 KV 键值对数据。 为了满足不同业务领域的需求,Redis内置了数据类型实现。 此外,Redis 还支持各种开箱即用的集群解决方案的事务和持久化。

为什么要使用 redis?

1.性能。

如果用户是第一次访问数据库中的某些数据,则该过程会较慢,毕竟是从硬盘中读取的。 但是如果。

如果用户访问的数据是高频数据,并且不经常变化,那么我们可以安全地存储用户访问的数据。

在缓存中。 也就是说,为了确保用户下次访问数据时,他们可以直接从缓存中获取数据。 操作缓存。

这是对内存的直接操作,所以它非常快。

2.高并发。

像MySQL这样的数据库,QPS在1W左右(4核8G),但通过Redis缓存很容易实现。

10W+,甚至高达30W+(在单机Redis的情况下,在Redis集群中会更高)。

qps(每秒查询):服务器每秒可以执行的查询数

可以看出,直接操作缓存可以维持的数据库请求数远大于直接访问数据库的数目,因此我们可以考虑这个数字。

数据库中的某些数据被传输到缓存中,因此用户的某些请求直接进入缓存,而无需经过数据库。 然后,我。

这也提高了整个系统的并发性。

除了缓存之外,Redis 还能做什么?

分布式锁:分布式锁是使用 Redis 制作分布式锁的常用方式。

速率限制:一般情况下,您可以使用 Redis + Lua 脚本来限制速率。

消息队列:Redis 内置的列表数据结构可以作为简单的队列使用。 redis 5.添加为 0 的流类型更适合消息队列。 它类似于 Kafka,具有主题和消费者组的概念,支持消息持久化和 ACK 机制。

复杂的业务场景:通过Redis和Redis扩展(如Redisson)提供的数据结构,我们可以轻松完成许多复杂的业务领域,例如通过Bitmap统计活跃用户,通过排序集维护排行榜。

Redis 常用的数据结构有哪些?

5 种基本数据结构:字符串、列表、集合hash (哈希), zset (有序集.

有 3 种特殊数据结构:hyperloglogs、bitmaps 和 geospatial。

redis为缓存数据设置过期时间有什么用?

通常,我们在设置保存的缓存数据时会设置过期时间。 为什么?

由于内存有限,如果缓存中的所有数据都一直保留,则几分钟后就会耗尽内存。

过期时间除了有助于缓解内存消耗之外,是否有其他用处?

在很多情况下,我们的业务需要一定的数据只存在于一定的时间段内,例如,我们的短信验证码可能只有1分。

用户登录的令牌可能仅在 1 天内有效。

如果使用传统数据库来处理,一般会自己判断过期时间,比较繁琐,性能也低很多。

您知道过期数据的删除策略吗?

如果设置了一批密钥仅存活 1 分钟,那么 Redis 如何在 1 分钟后删除密钥?

对于过期数据,有两种常用的删除策略。

1.延迟删除:仅在检索密钥时检查数据是否过期。 这是对 CPU 最友好的,但可能会导致太多。

期间键尚未删除。

2.定期删除:定时提取一批密钥,删除过期密钥。 此外,底层 Redis 将通过限制删除操作来强制执行删除操作。

行的长度和频率,以减少删除操作对 CPU 时间的影响。

常规删除对内存更友好,延迟删除对 CPU 更友好。 两者都各有千秋,所以Redis使用常规删除+懒惰。

性懒惰风格去除。

但是,仅通过设置密钥的到期时间,仍然存在问题。 因为可能仍然有定期删除和延迟删除,错过了很多过期时间。

钥匙。 这会导致大量过期的密钥在内存中累积,然后它们就耗尽了内存。

你了解Redis内存消除机制吗?

相关问题:MySQL中有2000W的数据,Redis只有20W的数据,如何保证Redis中的数据是热数据?

Redis 提供了六种数据消除策略:

1.volatile-lru:从已设置过期时间的数据集中选取最新的数据集。

删除使用最少的数据。

2.volatile-ttl:从数据集设置的过期时间中选择要过期的数据。

3.volatile-random:从数据集中选择已设置过期时间的任何数据。

4.alkeys-r:当没有足够的内存来容纳新写入的数据时,从密钥空间中删除最近使用最少的密钥(这是最常用的密钥)。

5.allkeys-random:从数据集中选择要删除的任何数据。

缓存穿透和缓存击穿有什么区别?

在缓存渗透中,请求的密钥既不存在于缓存中,也不存在于数据库中。

在缓存细分中,请求的密钥对应于热数据,该数据存在于数据库中,但不存在于缓存中(通常是因为缓存中的数据已过期)。

解决方案是什么?对于Redis服务不可用的情况:

1.使用Redis集群是为了避免单机出现问题,不能使用整个缓存服务。

2.限制以避免同时处理大量请求。

对于热点缓存失效:

1.设置不同的过期时间,例如随机设置缓存的过期时间。

2.缓存永不过期(不推荐,使用太差)。

3.设置二级缓存。

相似文章

    蚂蚁数据库是国产数据库发展的信息创新政策支撑

    由于中国在信息技术领域起步较晚,国内大量市场份额被国际IT巨头占据,甚至长期处于垄断地位,这也给了一些国家试图通过挑起科技和摩擦来平衡中国发展的机会。为了解决可能存在的安全风险,重要信息系统和关键基础设施使用的核心信息技术产品和关键服务必须是可控的 可研究的 可开发的 可生产的。数据库作为信息技术发...

    数据安全知识:数据库简史

    第一个自动化数据库与赫尔曼 霍勒里斯 Herman Hollerith 相连,他于年为自动数据处理系统申请了专利。 年美国人口普查使用了打孔卡计数器系统,卡片收集代表了第一个自动数据库系统。每张卡片有 列,其中包含有关人员特征的信息。通常,人口普查信息需要两年时间来处理。然而,打孔卡系统和自动读卡机...

    国产分布式数据库AntDB数据库发展趋势及难点

    介绍 近日,为更好地满足亚信科技客户对数据管理的需求,提升通用数据库的产品服务能力和业务拓展能力,亚信科技分布式数据库antdb发布了V版本帮助运营商核心系统实现业务系统的全方位自主可控和平滑上线。面向未来,国产数据库的发展还有很长的路要走,分布式数据库也将在这一过程中发挥重要作用。信息创新产业,即...

    数据安全知识 数据库安全威胁

    以下是创建数据库安全策略时必须考虑的最常见和最危险的威胁类型。SQL 注入是一种网络攻击,攻击者通过输入字段将恶意 插入结构化查询语言 SQL 语句中。如果数据库中存在漏洞,黑客可以绕过身份验证并获得向数据库发出命令的能力。SQL 注入使入侵者能够执行以下一项 或多项 活动 修改 窃取或删除数据。创...

    向量数据库,展望AGI时代

    在通向通用人工智能 AGI 时代的道路上,向量数据库和大型模型现在是技术领域的明星。然而,与任何新兴技术一样,它们的关注似乎更多地来自焦虑,而不是对真正需求的追求。本文探讨了AGI时代对矢量数据库的热潮及其前景,以及公众对这一技术浪潮的心态。随着科学技术的飞速发展,人们对AGI时代的到来充满期待,但...