首页 > 数据库 >Redis场景

Redis场景

时间:2024-04-26 10:27:27浏览次数:18  
标签:缓存 队列 Redis Vue js 任务 场景

redis应用场景

Redis 在缓存和队列方面有着广泛的应用场景,下面详细介绍一下:

  1. 缓存应用场景
    • 页面缓存:在 Web 应用中,Redis 可以用作页面缓存,存储页面渲染结果,以减轻数据库的压力,提高页面响应速度。当用户请求某个页面时,首先检查 Redis 中是否存在该页面的缓存,如果存在则直接返回缓存结果,否则从数据库中获取数据,并将结果缓存到 Redis 中。
    • 对象缓存:Redis 可以用来缓存对象数据,如用户信息、商品信息等。当某个对象频繁被访问时,可以将其缓存到 Redis 中,以减少数据库查询次数,提高数据读取效率。
    • 会话缓存:在 Web 应用中,用户的会话信息通常需要被保存,以便实现用户登录状态的保持。Redis 可以用来存储用户会话数据,如用户登录状态、购物车信息等。通过将会话数据存储在 Redis 中,可以提高会话管理的效率和可扩展性。
    • 热点数据缓存:对于一些频繁被访问的数据,如热门商品、热门文章等,可以将其缓存到 Redis 中,以减少数据库的访问压力,提高数据读取速度。
  2. 队列应用场景
    • 任务队列:Redis 的列表数据结构非常适合作为任务队列的存储介质。生产者将任务信息压入队列,消费者从队列中取出任务并执行。通过 Redis 的队列,可以实现任务的异步处理,提高系统的吞吐量和并发能力。
    • 消息队列:Redis 的发布订阅功能可以实现简单的消息队列机制。生产者将消息发布到指定的频道,订阅该频道的消费者会收到相应的消息并进行处理。消息队列常用于实现系统之间的解耦、异步通信等场景。
    • 延迟队列:通过结合 Redis 的有序集合和定时任务功能,可以实现延迟队列。生产者将带有过期时间的任务信息存储在有序集合中,消费者定期轮询有序集合,获取到期的任务并进行处理。延迟队列常用于实现定时任务、消息重试等功能。

总的来说,Redis 在缓存和队列方面具有灵活性和高效性,可以应用于各种不同的场景,帮助提升系统的性能和可靠性。

在 Vue.js 中,通常是在前端实现用户界面和交互逻辑,而 Redis 是一个后端存储和缓存数据库,用于处理数据存储和缓存。直接在 Vue.js 中使用 Redis 是不安全的,因为 Redis 是在服务器端运行的数据库,而 Vue.js 运行在客户端浏览器中。

通常情况下,Vue.js 通过与后端服务器进行通信来获取数据,而后端服务器可能会使用 Redis 来存储和缓存数据。例如,你可以使用 Vue.js 发送 HTTP 请求到后端 API,后端 API 则从 Redis 中获取数据并将其返回给 Vue.js。

所以,虽然 Vue.js 本身不能直接使用 Redis,但是可以通过后端服务器来间接地与 Redis 进行交互。

redis队列

实现任务队列之前,我们先了解一下使用任务队列有哪些好处:

  1. 松耦合。生产者和消费者无需知道彼此的实现细节,只需要约定好任务的描述格式。这使得生产者和消费者可以由不同的团队使用不同的编程语言编写。

  2. 易于扩展。消费者可以由多个,而且可以分布在不同的服务器中,借此可以轻易地降低单台服务器的负载。

要实现队列很自然就想到Redis的列表类型,以及LPUSH和RPOP命令。如果要实现任务队列,只需要让生产者将任务使用LPUSH命令加入到某个键中,另一边让消费者不断的使用RPOP命令从该键中取出任务即可

优化:借助BRPOP命令,可以实现一旦有新任务加入队列就通知消费者

BRPOP命令接收两个参数,第一个是键名,第二个是超时时间,单位是秒。当超过了此时间仍然没有获得新元素的话就会返回nil。 如果超时时间设为“0”,表示不限制等待的时间,如果没有新元素加入列表就会永远阻塞下去。

BRPOP 和 RPOP命令相似,唯一区别是:任务列表中没有元素时BRPOP命令会一直阻塞住连接,直到有新元素加入。

标签:缓存,队列,Redis,Vue,js,任务,场景
From: https://www.cnblogs.com/DQ-MINE/p/18159386

相关文章

  • redis安装及使用
    Redis与传统数据库的一个主要区别在于,Redis把所有数据都存储在内存中,而传统数据库通常只会把数据的索引存储在内存中,并将实际的数据存储在硬盘中。为了满足不同的持久化需求,Redis提供了RDB持久化、AOF持久化和RDB-AOF混合持久化等多种持久化方式以供用户选择。如果用户有需要,也......
  • redis使用
    Pythonredis使用介绍|菜鸟教程(runoob.com)Python操作Redis,你要的都在这了!-John-Python-博客园(cnblogs.com)redis基本命令Stringset(name,value,ex=None,px=None,nx=False,xx=False)在Redis中设置值,默认,不存在则创建,存在则修改。参数:ex-过期时间(秒......
  • Redis过期策略
    在Redis中提供了两种数据过期删除策略:惰性删除:在设置该key过期时间后,我们不去管它。当需要该key时,我们会检查其是否过期,如果过期,就删除它;反之,返回该key。定期删除:每隔一段时间,我们会对一些key进行检查,删除其中过期的key。定期清理有两种模式:SLOW模式:使用定时任务,执行频率......
  • Redis 面试知识点
    1、Redis缓存数据库一致性采用最终一致性,而不是采用强一致性,强一致性会导致系统吞吐量变差;采用双删除的策略,第二次删除,采用延迟删除;推荐采用,先操作数据库,直接删除缓存的方式;删除失败的情况,采用异步方式,重试操作;读取binlog异步删除,使用开源框架canal,监听canal......
  • 说说你对二分查找的理解?如何实现?应用场景?
     一、是什么在计算机科学中,二分查找算法,也称折半搜索算法,是一种在有序数组中查找某一特定元素的搜索算法想要应用二分查找法,则这一堆数应有如下特性:存储在数组中有序排序搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束如果某一特定元素大......
  • Redis缓存穿透,击穿和雪崩
    缓存穿透缓存穿透是指查询一个一定不存在的数据,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到DB去查询,可能导致DB挂掉。这种情况大概率是遭到了攻击。解决方案的话,我们通常都会用布隆过滤器来解决它。布隆过滤器主要是用于检索一个元素是否在......
  • Redis持久化
    redis做为缓存,数据的持久化是怎么做的?在Redis中提供了两种数据持久化的方式:RDBAOF这两种持久化方式有什么区别呢?RDB是一个快照文件,它是把redis内存存储的数据写到磁盘上,当redis实例宕机恢复数据的时候,方便从RDB的快照文件中恢复数据。AOF的含义是追加文件,当redis操作写......
  • Redis进阶 -
    之前已经总结了Redis的基础使用  springboot3+vue3(八)Redis基础使用--登录优化Redis进阶主要总结一下以下知识点:Redis持久化Redis主从Redis哨兵Redis分片集群 Redis单节点问题,以及解决方案:1、数据丢失问题(Redis是内存存储,服务器重启可能会丢失数据。)-----解决......
  • redis ----window本地服务
    注册为本地服务进入Redis安装目录,命令格式如下:--service-install服务安装命令--service-name指定服务名--port指定端口运行如下命令:注意:需要在redis.windows.conf配置文件中修改port为6379(默认不用修改)注册成功,查询服务列表,redis服务注册成功,如下图图:2.2启动本地服务服务注......
  • Redis查看当前连接数 & 客户端连接信息
    【redis-cli命令行使用:infoclients可以查看当前的redis连接数:】127.0.0.1:6379>infoclients#Clientsconnected_clients:4cluster_connections:0maxclients:6client_recent_max_input_buffer:56client_recent_max_output_buffer:0blocked_clients:0tracking_clients:0clien......