共计 1498 个字符,预计需要花费 4 分钟才能阅读完成。
自动写代码机器人,免费开通
这篇文章主要介绍了 redis 的功能是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让丸趣 TV 小编带着大家一起了解一下。
Redis 提供了丰富的功能,初次见到可能会感觉眼花缭乱,这些功能都是干嘛用的?都解决了什么问题?什么情况下才会用到相应的功能?下面开始一步一步的解释下。
基于本机内存的缓存
为了解决调用 API 依然需要 2 秒的问题,经过排查,其主要原因在于使用 SQL 获取热点新闻的过程中消耗了将近 2 秒的时间,于是乎,我们又想到了一个简单粗暴的解决方案,即把 SQL 查询的结果直接缓存在当前 api 服务器的内存中(设置缓存有效时间为 1 分钟)。后续 1 分钟内的请求直接读缓存,不再花费 2 秒去执行 SQL 了。假如这个 api 每秒接收到的请求时 100 个,那么一分钟就是 6000 个,也就是只有前 2 秒拥挤过来的请求会耗时 2 秒,后续的 58 秒中的所有请求都可以做到即使响应,而无需再等 2 秒的时间。
服务端的 Redis
在 API 服务器的内存都被缓存塞满的时候,我们发现不得不另想解决方案了。最直接的想法就是我们把这些缓存都丢到一个专门的服务器上吧,把它的内存配置的大大的。然后我们就盯上了 redis。。。至于如何配置部署 redis 这里不解释了,redis 官方有详细的介绍。随后我们就用上了一台单独的服务器作为 Redis 的服务器,API 服务器的内存压力得以解决。
持久化(Persistence)
单台的 Redis 服务器一个月总有那么几天心情不好,心情不好就罢工了,导致所有的缓存都丢失了(redis 的数据是存储在内存的嘛)。虽然可以把 Redis 服务器重新上线,但是由于内存的数据丢失,造成了缓存雪崩,API 服务器和数据库的压力还是一下子就上来了。所以这个时候 Redis 的持久化功能就派上用场了,可以缓解一下缓存雪崩带来的影响。redis 的持久化指的是 redis 会把内存的中的数据写入到硬盘中,在 redis 重新启动的时候加载这些数据,从而最大限度的降低缓存丢失带来的影响。
哨兵(Sentinel)和复制(Replication)
Redis 服务器毫无征兆的罢工是个麻烦事。那么怎办办?答曰:备份一台,你挂了它上。那么如何得知某一台 redis 服务器挂了,如何切换,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要 Sentinel 和 Replication 出场了。Sentinel 可以管理多个 Redis 服务器,它提供了监控,提醒以及自动的故障转移的功能;Replication 则是负责让一个 Redis 服务器可以配备多个备份的服务器。Redis 也是利用这两个功能来保证 Redis 的高可用的。此外,Sentinel 功能则是对 Redis 的发布和订阅功能的一个利用。
集群(Cluster)
单台服务器资源的总是有上限的,CPU 资源和 IO 资源我们可以通过主从复制,进行读写分离,把一部分 CPU 和 IO 的压力转移到从服务器上。但是内存资源怎么办,主从模式做到的只是相同数据的备份,并不能横向扩充内存;单台机器的内存也只能进行加大处理,但是总有上限的。所以我们就需要一种解决方案,可以让我们横向扩展。最终的目的既是把每台服务器只负责其中的一部分,让这些所有的服务器构成一个整体,对外界的消费者而言,这一组分布式的服务器就像是一个集中式的服务器一样
感谢你能够认真阅读完这篇文章,希望丸趣 TV 小编分享 redis 的功能是什么内容对大家有帮助,同时也希望大家多多支持丸趣 TV,关注丸趣 TV 行业资讯频道,遇到问题就找丸趣 TV,详细的解决方法等着你来学习!
向 AI 问一下细节
丸趣 TV 网 – 提供最优质的资源集合!