redis常见的使用场景

redis常见的使用场景。小编来告诉你更多相关信息。redis常见的使用场景文章摘要:redis常见的使用场景方面的介绍,请看下面详细的介绍。缓存:是redis被使用最多的场景之一,...

redis常见的使用场景。小编来告诉你更多相关信息。

redis常见的使用场景

文章摘要:redis常见的使用场景方面的介绍,请看下面详细的介绍。

  • 缓存:是 redis 被使用最多的场景之一,业务数据一般存在磁盘中,当我们要读写数据时,直接去磁盘里面访问就可以。但磁盘 IO 一直是业务性能提升的一个重要瓶颈,且并发量很高的情况下,数据库承受不了访问压力甚至还会宕机。而缓存就是为了应对这些场景产生的,当用到缓存时,先把一部分业务数据从 MySQL 写到 redis 中,用户在访问业务数据时,先到 redis 中拿数据;如果不存在,再到 MySQL 中拿,接着把访问过的数据写入 redis 中:

redis常见的使用场景-图1

用 redis 作缓存时,访问速度快,且 redis 提供持久化机制,可以保证服务宕机之后,缓存数据依旧可以恢复。

  • 消息队列: 上篇文章中我们已经说到,Redis 中的 list 数据结构可以用 LinkedList 双向链表实现 。它可以很轻松地实现消息队列(生产者/消费者模型)。消息的生产者只需要通过 lpush  命令将消息放入 list,消费者可以通过 rpop 取出该消息,并且保证消息的有序性。

    redis常见的使用场景-图2

如果需要实现带有优先级的消息队列也可以选择 sorted list

  • 分布式锁:在实现了高可用的业务场景中,假设现网的某个服务运行在三台服务器上。当客户端进行业务访问时,每台服务器被访问的概率一致。这种情况下,想要控制只能由一台服务器去执行某些操作时(比如更新共享内存,防止并发),就可以用到分布式锁。简单来说,分布式锁就是为了保证多台服务器在执行某一段代码时保证只有一台服务器执行。Redis 实现分布式锁主要利用了 setnx命令,setnx 即 SET if not exists (如果不存在,则 SET) 的简写:
127.0.0.1:6379> setnx lock value1 #在键lock不存在的情况下,将键key的值设置为value1(integer) 1127.0.0.1:6379> setnx lock value2 #试图覆盖lock的值,返回0表示失败(integer) 0

当某个客户端执行时,对某一段代码用 setnx 命令进行加锁。不存在则保存,并返回 1 表示加锁成功;如果已经存在则返回 0,加锁失败,代表该段代码已被加锁。分布式锁需要满足以下几点:

1、互斥性。在任何时刻,保证只有一个客户端持有锁。

2、不能出现死锁。如果在一个客户端持有锁的期间,这个客户端崩溃了,也要保证后续的其他客户端可以上锁。

redis常见的使用场景。小编来告诉你更多相关信息。

redis常见的使用场景

3、保证上锁和解锁都是同一个客户端。

  • 好友关系:redis 的 sinter 命令可以很方便地对两个 set 取交集,所以在维护好友关系的朋友圈时,把 A 关注的人放到 A:foller 集合中,B 关注的人放到 B:foller 中。当 A 访问 B 时,就可以通过交集的方式获得 A 和 B 同时关注的好友。
  • 排行榜、计数器等等

以上网介绍的redis常见的使用场景的具体内容,未经网允许禁止转载!

阅读前请先查看【免责声明】本文内容由互联网用户自发贡献,该文观点仅代表作者本人,本站仅供展示。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 1217266901@qq.com 举报,一经查实,本站将立刻删除。 转载请注明出处:https://www.jingfakeji.com/tech/35306.html

上一篇 2023年11月06日 19:41
下一篇 2023年11月06日 19:41

相关推荐

  • 简述dubbo的分层设计

    简述dubbo的分层设计。小编来告诉你更多相关信息。简述dubbo的分层设计跟大家说一说简述dubbo的分层设计的相关经验,请看下面详细的介绍。Service,业务层,就是咱们开发的业务...

    2024年02月06日
    6
  • Redis事务实现原理(深入解析Redis事务的实现机制)

    深入解析Redis事务的实现机制,Redis事务实现原理。小编来告诉你更多相关信息。Redis事务实现原理关于这方面的知识你知道吗?Redis事务实现原理方面的内容,下面为您详细介绍事务开始MULTI命令的执行,标识着...

    2024年02月06日
    6
  • Vue.js入门指南从安装到创建第一个应用程序

    Vue.js入门指南从安装到创建第一个应用程序。小编来告诉你更多相关信息。Vue.js入门指南从安装到创建第一个应用程序为网友们详解Vue.js入门指南从安装到创建第一个应用程序方面的内容,一起跟随小编看看吧...

    2024年02月06日
    7
  • dubbo的工作流程

    dubbo的工作流程。小编来告诉你更多相关信息。dubbo的工作流程本文导读:dubbo的工作流程的教程内容,一起跟随小编看看吧!Start:启动Spring容器时,自动启动Dubb...

    2024年02月05日
    8
  • Dubbo支持的注册中心有哪些?

    Dubbo支持的注册中心有哪些?。小编来告诉你更多相关信息。Dubbo支持的注册中心有哪些今日重点为您介绍Dubbo支持的注册中心有哪些方面的知识,下面来一起了解一下吧。Zookeeper(官方...

    2024年02月05日
    7
  • 为什么netflix从大单体演进到联合网关了

    为什么netflix从大单体演进到联合网关了。小编来告诉你更多相关信息。为什么netflix从大单体演进到联合网关了小编为大家解答为什么netflix从大单体演进到联合网关了的电脑方面的小经验,接下来一起来...

    2024年02月05日
    7

联系我们

在线咨询: QQ交谈

邮箱:1217266901@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信