什么情况下使用redis缓存

什么情况下使用redis缓存

Redis解决了什么问题?

大规模读写数据与数据库读写能力之间的矛盾                                 (推荐学习:Redis视频教程)

简单回顾一下CPU高速缓存的发展历程,为了解决CPU的计算速度与内存的读取速度之间的巨大差异,CPU使用高速缓存来存放指令和数据。

高速缓存从最初的主板缓存到现在的3级缓存,缓存大小也不断变大。来自网络的数据表明:CPU高速缓存的命中率大约为80%。

类比电脑发展过程中CPU与内存的矛盾,可以察觉到大型网站中大规模读写数据与数据库读写能力之间的矛盾与此矛盾类似。我们也可以在数据库与应用之间构建一块比数据库速度更快存储区域——缓存。

大家最熟悉的也莫过于Redis用作缓存,我们知道Redis的作者设计Redis的初衷是因为他使用关系型数据库时,无论如何优化,性能都不能达到自己的期望,于是便自己手写了一个内存数据库。

在作为缓存的情况下,我们有一下应用场景:

1. 热点数据 例如我们可以将SQL查询结果保存在内存中,也可以将用户经常查看的图片保存在内存中。

2. 排行榜 基于Redis提供的zset这种数据结构我们可以更加便捷的实现排行榜。实现排行榜的相关内容可以参考排行榜算法设计实现比较。在小规模数据的情况下,使用Mysql实现排行榜没有多少问题,但是一旦数据量上去了,那么持续的进行Mysql读写将会成为瓶颈。

3. 计数器/限速器 计数器的应用场景之一是统计用户的点赞数,限速器的应用场景之一是限制用户ip的访问次数。之所以Redis能用于计数器是因为Redis是单线程的,每次都必须前一个指令执行完,再执行下一个指令。这样就保证不会同时执行多条指令;也即不会出现并发问题。限速器的原理类似。

4. 共同好友 利用Redis提供的Set数据结构的求交集操作sinter可以更加便捷地求两个Set集合的交集;而使用数据库的连表查询将造成性能的开销很多,因为大型网站的用户数量巨大。

5. 简单消息队列 Redis的提供的发布/订阅是一个极其简单的消息系统。它不像Kafka那样提供了分成不同的topic并且分成不同的分区并且提供持久化的功能。Redis的消息队列用在不需要高可靠的场景。

6. session共享 Session是用来记录是用户是谁。当在应用使用集群方式部署的时候,我们需要一个统一管理session的地方,可以使用数据库来记录session,但是这时对数据库的性能要求较高,此外session通常是具有时效性的,这段逻辑我们需要在代码中实现,但是如果使用Redis来共享session,那么不会出现这样的问题。

上面的许多应用场景也可以使用其他技术解决问题,只是Redis这样的技术在一定资源限制的情况下,会是更好的解决方案。

更多Redis相关技术文章,请访问Redis数据库使用入门教程栏目进行学习!

以上就是什么情况下使用redis缓存的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2045966.html

(0)
上一篇 2025年2月24日 01:26:36
下一篇 2025年2月22日 03:24:24

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • redis该缓存什么数据

    Redis缓存数据类型有5种,分别是String(字符串)、List(列表)、Hash(哈希)、Set(无序,不重复集合)、ZSet(sorted set:有序,不重复集合)。 String(字符串)    (推荐学习:Redis视频教程)…

    2025年2月24日
    200
  • redis缓存有什么好处

    redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 从2010年3月15日起,R…

    2025年2月24日
    200
  • redis数据量过大怎么办

    redis这个内存数据库,它的高性能、稳定性都是不用怀疑的,但我们塞进redis的数据过多,内存过大,那如果出问题,那它可能会带给我们的就是灾难性。 这几年的线上业务表明,redis这个内存数据库,它的高性能、稳定性都是不用怀疑的,但我们塞…

    2025年2月24日
    200
  • redis缓存满了怎么办

    缓存数据满了怎么办? 首先要明确,用作缓存的数据都是设置了过期时间的,没有过期时间那不叫缓存,那叫持久化。 如果遇到缓存满了又该怎么办呢?               (推荐学习:Redis视频教程) 加内存 这是最简单粗暴的办法, 不过成…

    2025年2月24日
    200
  • 什么是redis读写分离

    Redis读写分离优势 透明兼容                 (推荐学习:Redis视频教程) 读写分离和普通集群规格一样,都使用了redis-proxy做请求转发,多分片令使用存在一定的限制,但从主从升级单分片读写分离,或者从集群升级…

    2025年2月24日
    200
  • redis集群和分布式区别

    分布式是指将业务系统进行拆分,即分布式的每一个节点都是实现不同的功能。 集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。        (推荐学习:Redis视频教程) 简单说,分布式是以缩短单个任务的执行…

    2025年2月24日
    200
  • redis集群需要设置哨兵吗

    哨兵模式是Redis官方推荐的集群部署方式,与主从复制方式不同,哨兵模式可以在Master宕机时,自动实现主备切换。哨兵本身也是一个独立运行的进程,它用来监控多个主从复制集群。                    (推荐学习:Redis视…

    2025年2月24日
    100
  • redis哨兵模式是集群吗

    哨兵模式 它是一种高可用的解决方案,sentinel本身是一个独立运行的进程,可以部署在其他与Redis集群可通讯的机器中监控Redis集群。 监控:哨兵会定时监控redis是否良好运行。         (推荐学习:Redis视频教程) …

    2025年2月24日
    200
  • redis的key过期了还存在吗

    最近我们在redis集群中发现了一个有趣的问题。在花费大量时间进行调试和测试后,通过更改key过期,我们可以将某些集群中的redis内存使用量减少25%。 Twitter内部运行着多个缓存服务。其中一个是由Redis实现的。我们的Redis…

    2025年2月24日
    200
  • redis保存数据的时候会加锁吗

    redis是没有锁机制的哟,对于多个用户连接也不存在竞争问题。 但是在进行并发时可能会出现连接超时,连接被阻塞或者是连接被关闭之类的错误。                     (推荐学习:Redis视频教程) 一般可以通过在客户端将连接…

    2025年2月24日
    200

发表回复

登录后才能评论