IT人

当前位置:主页 > 经验教程 > 建站编程 >

redis常见的使用场景

更新:2025-01-26 22:30:03 来源:IT人 作者:马勇
导读:redis常见的使用场景,文章摘要:redis常见的使用场景方面的介绍,请看下面详细的介绍。 缓存: 是 redis 被使用最多的场景之一,业务数据一般存在磁盘中,当我们要读写数据时,直接去磁盘

redis常见的使用场景

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

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

redis常见的使用场景

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

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

    redis常见的使用场景

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

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

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

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

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

相关阅读

  • 5G-Advanced关键增强功能有哪些

    5G-Advanced关键增强功能有哪些

    本文导读:5G-Advanced关键增强功能有哪些IT技巧方面的经验,接下来IT人网小编为大家介绍。 5G-Advanced作为5G技术的进一步演进,将引入一系列关键增强功能,推动通信技术向更高水平发展。 X

  • 魔兽世界服务器查询页面 怀旧服掉落查询数据库

    魔兽世界服务器查询页面 怀旧服掉落查询数据库

    正文核心导读:魔兽世界服务器查询页面和怀旧服掉落查询数据库的内容,接下来小编为网友介绍。 今天给大家介绍一个比较有意思的魔兽自带功能,其实很多老玩家应该都是知道的,但是应

  • 游戏网站排行榜前十名 大型手游网络游戏介绍

    游戏网站排行榜前十名 大型手游网络游戏介绍

    本文核心内容:游戏网站排行榜前十名和大型手游网络游戏介绍方面的内容,下面小编为您详细解答 这些是最好的电子游戏评论和新闻网站,不会浪费你的时间与无关的废话 每年都有成百上千

  • 建站工具有哪些 创建自己的网站平台推荐

    建站工具有哪些 创建自己的网站平台推荐

    今天带来的IT技巧小经验建站工具有哪些和创建自己的网站平台推荐的相关经验,接下来IT人小编为大家介绍。 一、建站软件是什么? 建站软件是可以快速建立网站的系统,只要会打字,无需