/// /// 索引的创建与更新 /// public class IndexManager { public static readonly IndexManager Instance = new IndexManager(); private static readonly string IndexPath = Ho...
原创
2021-07-30 09:24:51
147阅读
队列(Queue)队列,其实在我们的开发的过程中,我们很少使用java自己内部的队列,因为我们好多时候是使用我们开发过程的一些中间件,这个有很多成熟的产品,性能也很好,比如:kafka,rabbitmq,redis的队列,这些都比我们自己用内部的队列简单的多,但是我们是研究算法的,可能就真的需要好好看看leetcode的上一些题目了队列的特点:和栈不同,队列的最大特点是先进先出(FIFO),就好像
原创
2020-08-18 22:34:27
252阅读
队列(Queue)队列,其实在我们的开发的过程中,我们很少使用java自己内部的队列,因为我们好多时候是使用我们开发过程的一些中间件,这个有很多成熟的产品,性能也很好,比如:kafka,rabbitmq,redis的队列,这些都比我们自己用内部的队列简单的多,但是我们是研究算法的,可能就真的需要好好看看leetcode的上一些题目了队列的特点:和栈不同,队列的最大特点是先进先出(FIFO),就好像
原创
2020-08-18 22:35:09
396阅读
Redis用双链表list实现队列的LPUSH key value [value ...] 将一个或多个值 value 插入到列表 key 的表头 如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头: 比如说,对空列表 mylist 执行命令 LPUSH mylist a b c ,列表的值将是 c b a ,这等同于原子性地执行 LPUSH mylist a 、
转载
2024-08-07 13:10:59
34阅读
重复消费问题:为了解决消费端因为种种原因而造成的消息丢失问题,我们都知道根源在于因为RabbitMQ的自动ack机制,所以为了避免以上问题,我们会选中手动ack,以确保消息不会因为某些原因而丢失。但随之而来的也有一个问题:如果忘记ack,或者又因为种种原因消费者端没能给RabbitMQ对应ack,无法确认消息已经被消费完了,那这条未被“约束”的消息也许就会被另一个消费者消费,就会造成重复消费问题如
转载
2023-08-15 15:47:52
122阅读
一、消息队列的三个要求消息有序执行(有序性);由于网络阻塞等原因,消息不会被重复执行(幂等性);宕机后,消息不会丢失(可靠性)。二、Redis实现消息队列Redis中可以使用List或者Streams两种数据结构来满足以上消息队列的要求List有序性: list本身就是先进先出,天然支持有序性(高并发时需要多个消息队列,每个队列保存同一个服务的消息,对应消费该服务消息的消费者);幂等性: 生产者在
转载
2023-08-15 07:02:57
106阅读
redis是现在很火的缓存数据库,单线程的运行使得效率很高,redis的集合是一个链表式的数组,并且为了支持单线程操作,所有的数组执行都是串行操作阻塞式读取,因此,可以基于redis的数组实现一个消息队列。并且redis还支持发布订阅模式,也可以据此构建一个聊天系统在Redis中,List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right
转载
2023-05-29 11:11:14
52阅读
所谓延时队列就是延时的消息队列,下面说一下一些业务场景实践场景订单支付失败,每隔一段时间提醒用户用户并发量的情况,可以延时2分钟给用户发短信先来看看Redis实现普通的消息队列我们知道,对于专业的消息队列中间件,如Kafka和RabbitMQ,消费者在消费消息之前要进行一系列的繁琐过程。如RabbitMQ发消息之前要创建 Exchange,再创建 Queue,还要将 Queue 和 Exchang
转载
2023-08-30 08:34:10
118阅读
一、消息队列简介消息队列(Message Queue),字面意思就是存放消息的队列。最简单的消息队列模型包括 3 个角色:消息队列:存储和管理消息,也被称为消息代理(Message Broker)生产者:发送消息到消息队列消费者:从消息队列获取消息并处理消息 消息队列和阻塞队列的区别: ① 消息队列是在 JVM 以外的独立服务,所以不受 JVM 内存的限制 ② 消息队列不仅仅做数据存储,还需要确保
转载
2023-07-09 15:51:07
1095阅读
传送门#include <bits/stdc++.h>#define int long longusing names
原创
2023-05-26 15:03:46
52阅读
# MongoDB 和 Redis 的运用
在现代软件开发中,数据库的选择直接影响应用程序的性能与可扩展性。MongoDB 和 Redis 是两个流行的数据库选项,它们各自有着不同的优缺点和适用场景。本文将讨论它们的特性、使用场景以及如何在实际代码中使用它们。
## MongoDB 概述
MongoDB 是一个基于文档的 NoSQL 数据库,使用 BSON 格式来存储数据。它支持动态模式,意
原创
2024-08-23 05:01:20
18阅读
redis管道pipeline的运用
原创
2018-07-05 20:01:20
10000+阅读
点赞
# Redis的Watch机制运用
Redis是一个开源的内存数据库,具备高性能和高可用性,广泛应用于缓存、队列和实时分析等场景。而Redis的Watch机制是用来实现乐观锁的一种重要机制,可以保证在事务执行期间数据的一致性。
## Watch机制简介
在Redis中,Watch机制是用来监视一个或多个键的变化,当事务开始执行时,Redis会对这些键进行监视。如果事务执行过程中有其他客户端对
原创
2024-04-25 05:04:03
87阅读
最近在使用redis时发现总有一些消息队列中存在大量的处于unacked状态的消息,一般来说,如果队列中ready状态的消息数比较多,可以认为是消费者的处理能力不足,可以通过增加消费者来解决,而unacked消息存在基本是有以下两点原因:消费者取走消息后没有及时做消息确认,对于开启手动确认机制的,不进行ack则消息会一直以unacked状态留在队列中。消费者处理能力不足。生产者投放消息的速度较快,
转载
2023-09-18 22:25:48
80阅读
一:对于Redis的理解,之前一直停留在缓存的层面上,这是因为它常被人当着缓存来用,除了缓存,我们需要了解它的其他功能。1:Redis缓存,主要作用在分布式缓存解决问题 2:消息队列3:发布订阅4:redis-分布式锁5:redis-cluster集群对以上5个功能深入了解,才会发现redis的强大之处。当如也有一些关于redis的其他问题,是面试常见的。1:redis的类型有哪些2:r
转载
2023-07-09 15:31:33
29阅读
消息队列介绍、RabbitMQ、Redis一、什么是消息队列 这个概念我们百度Google能查到一大堆文章,所以我就通俗的讲下消息队列的基本思路。 还记得原来写过Queue的文章,不管是线程queue还是进程queue他都是一种消息队列。他都是基于生产者消费者模型来处理消息。 Python中的进程queue,是用于父进程与子进程,或者同属于一个父进程下的多个子进程之间进行信息交互。注意这种q
Redis消息队列的若干实现方式最近忙着用Redis实现一个消息通知系统,今天大概总结了一下技术细节,其中演示代码如果没有特殊说明,使用的都是PhpRedis扩展来实现的。内存比如要推送一条全局消息,如果真的给所有用户都推送一遍的话,那么会占用很大的内存,实际上不管粘性有多高的产品,活跃用户同全部用户比起来,都会 小很多,所以如果只处理登录用户的话,那么至少在内存消耗上是相当划算的,至于未登录
转载
2024-06-24 23:30:09
11阅读
Redis是否可以作为消息队列
分布式系统中必备的一个中间件就是消息队列,通过消息队列我们能对服务间进行异步解耦、流量消峰、实现最终一致性。目前市面上已经有 RabbitMQ、RochetMQ、ActiveMQ、Kafka等,有人会问:“Redis 适合做消息队列么?”在回答这个问题之前,我们先从本质思考:消息队列提供了什么特性?R
转载
2024-07-23 19:23:01
21阅读
题目 题目:cf536 B题 题目大意:一个饭店有n种食物,每种食物有对应的价格和数量,然后有m个顾客,每个顾客需要$d_j$份第$t_j$种食物,如果该种食物数量不够,则选其它尽可能便宜的代替(出现同样价格的应选索引最小的);如果所有的食物都不够该顾客,该顾客会吃完这些食物,并且不花钱。假设只有当
转载
2019-02-01 15:17:00
23阅读
2评论
题目 题目: Lunar New Year and a Wander 题目大意:给定一个n个顶点(编号1~n)、m条边的图,求从顶点1出发的字典序最小的路径(途径的边可重复)。 思路 使用一个优先队列就足够了。当访问一个节点,我们将与之相连的、未被访问的节点加入队列,每次取优先队列的队首进行访问。即
转载
2019-02-01 16:39:00
19阅读
2评论