Redis的list类型其实就是一个每个子元素都是string类型的双向链表。链表的最大长度是(2的32次方)。我们可以通过push,pop操作从链表的头部或者尾部添加删除元素。这使得list既可以用作栈,也可以用作队列。有意思的是list的pop操作还有阻塞版本的,当我们[lr]pop一个list对象时,如果list是空,或者不存在,会立即返回nil。但 是阻塞版本的b[lr]pop可以则可
转载 2023-05-25 15:53:06
187阅读
# Python队列上限问题 在计算机科学中,队列是一种重要的数据结构,通常用于按顺序存储数据。在很多情况下,应用程序需要限制数据存储的数量,这就引出了队列上限问题。本文将探讨如何在Python中实现一个带上限队列,并通过代码示例和图表进一步说明。 ## 队列的基本概念 队列是一个先进先出(FIFO)的数据结构,意味着最先插入队列的元素将是最先被移除的元素。队列的基本操作包括入队(en
原创 2024-10-09 04:14:38
37阅读
在实际的业务中我们会遇见生产者产生的消息,不立即消费,而是延时一段时间在消费。RabbitMQ本身没有直接支持延迟队列功能,但是我们可以根据其特性Per-Queue Message TTL和 Dead Letter Exchanges实现延时队列。也可以通过改特性设置消息的优先级。1.Per-Queue Message TTLRabbitMQ可以针对消息和队列设置TTL(过期时间)。队列
转载 2024-01-31 22:04:37
32阅读
# HBase 列上限实现流程 ## 1. 简介 在介绍如何实现 HBase 列上限之前,我们先来了解一下什么是 HBase 以及列上限是什么意思。 ### 1.1 HBase 简介 HBase 是一种分布式的、面向列的开源数据库,它基于 Hadoop 的分布式文件系统 HDFS 存储数据。HBase 提供了高可靠性、高性能、可伸缩性和强一致性的特性,适合于存储大规模的非结构化和半结构化数据。
原创 2023-10-18 18:24:33
59阅读
# MySQL数据库上限上限列上限 MySQL是一种开源的关系型数据库管理系统,被广泛应用于Web应用程序的开发中。在使用MySQL时,我们需要了解其数据库上限,包括表上限、行上限列上限,以便合理设计数据库结构和优化性能。 ## 表上限 在MySQL中,表是用于存储数据的基本单位。根据MySQL的版本和配置,表的上限会有所不同。MySQL 5.1及之前的版本,表的上限是2^16个。从M
原创 2024-01-12 12:47:24
330阅读
1.Redis的几种数据结构类型String: 底层采用SDS的数据结构,存储了当前字符串的长度以及未使用的空间, 内部编码有三种,int(8 字节长整型)/embstr(小于等于 44字节字符串)/ raw(44个字节字符串),64字节-RedisObject(16字节)-SDS结构体大小(3字节)-字符串以NULL结尾(1字节)=44 List:采用快速链表的数据结
转载 2023-06-13 15:10:30
245阅读
前面两篇已经对Redis的基本数据类型,Redis的过期和持久化策略进行了讲述,但即便拥有了恢复的能力,而在故障恢复的这段时间服务也是完全挂掉不可用,对于一个高可用的系统来说,这是完全不能接受的,因此我们要告别单兵作战时代,看看Redis是如何进行集群作战的主从复制Redis主从关系是通过slaveof命令来实现的,调用slaveof命令的服务器为从服务器,命令的参数是主服务器。从服务器通过复制来
# Java 队列上线 ## 简介 在计算机科学中,队列是一种常见的数据结构,它遵循先进先出(FIFO)的原则。队列可以用于解决一些常见的问题,如任务调度、缓冲和事件处理等。Java提供了许多实现队列的类和接口,使得在Java中使用队列变得非常方便。 本文将介绍Java中常见的队列接口和实现类,并提供一些代码示例来帮助读者更好地理解和使用队列。 ## 队列接口 Java提供了一个`Que
原创 2023-08-02 19:20:47
31阅读
在java5中新增加了java.util.Queue接口,用以支持队列的常见操作。Queue接口与List、Set同一级别,都是继承了Collection接口。Queue使用时要尽量避免Collection的add()和remove()方法,而是要使用offer()来加入元素,使用poll()来获取并移出元素。
转载 2016-03-07 19:40:00
86阅读
GCD编程的核心就是dispatch队列,dispatch block的执行最终都会放进某个队列中去进行,它类似NSOperationQueue但更复杂也更强大,并且可以嵌套使用。所以说,结合block实现的GCD,把函数闭包(Closure)的特性发挥得淋漓尽致。 dispatch队列的生成可以有这几种方式:1. dispatch_queue_t("com.dispatch.seria
转载 2023-07-19 22:18:23
151阅读
JAVA内没有指针,取而代之的是引用,他比指针更加安全,c语言里队列里的每个元素,有两个区域,一个是指针域,指向下一个节点,还有一个是值的区域。 而JAVA内,把那个指针换成了节点,每个节点又包含有值区域,和下一个存储的节点。 package 队列; public class Node { /** * 数据域 * 指向下一个位置的节点 */ private String data; privat
1 Redis Set1.1 案例1package myset; import redis.clients.jedis.Jedis; import java.util.Set; public class SetMain { public static void main(String[] args){ Jedis jedis = new Jedis("127.0
转载 2024-06-05 23:13:33
17阅读
# Android 线程池队列上传 在开发Android应用程序时,我们经常会需要进行文件上传操作。而在上传大文件或者大量文件时,直接在主线程中进行上传操作会导致界面卡顿或者上传失败。为了避免这种情况的发生,我们可以使用线程池队列来进行上传操作,提高上传效率并且保持界面的流畅性。 ## 什么是线程池队列? 线程池队列是一种管理多线程的技术,它可以通过事先创建一组线程,然后将任务依次分配给这些
原创 2024-02-23 06:35:03
173阅读
死信的概念死信的处理方式演示1.引入spring-boot-start-amqp依赖2.配置application.yml文件3.创建两个队列,一个是业务队列,一个是死信队列4.在controller中模拟生产者发送信息5.启动程序,用postman调用发送信息接口死信的概念死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer将消息投递到broker或者直接到que
并发队列和串行队列前面我们讲了,消息分为普通消息和有序消息两大类。普通消息是可以并发的,由于是并发的,这些广播的处理者之间互相是不依赖的。另外,并发队列和串行队列都各维护了一条后台广播队列和前台广播队列。如果这个消息足够重要,想走快速通道的话,可以选择使用前台广播队列。对于并发队列,如果是进程活着,动态注册到队列里的,系统会通过并发的方式迅速将消息广播出去,就跟大家所想象的一样。但是如果需要通过启
klass.getCanonicalName()); } } //必须先执行Looper.prepare(),才能获取Looper对象,否则为null. mLooper = Looper.myLooper();//从当前线程绑定的ThreadLocal中获取Looper对象 if (mLooper == null) { throw new RuntimeException(
转载 3月前
33阅读
iOS中的队列分为两类,串行队列(serial queue)和并发队列(concurrent queue).串行队类会按照先进先出的原则来调度任务,在前一个任务没有执行结束之前,后加入队类的任务不会被调度;而对于并发队列来讲可以同时调度多个任务,默认情况下各个任务之间没有必然的依赖关系,任务执行顺序依据系统调度而定,没有必然的先后顺序.添加任务的方式也有两类,同步添加(dispatch_sync)
# Redis TTL 上限 Redis是一个开源的内存数据结构存储系统,被广泛用于缓存、消息队列、实时分析等场景。在Redis中,TTL(Time To Live)是一个非常重要的概念,用于设置一个键的生存时间,过期后会自动从数据库中删除。 ## 什么是TTL TTL是指键值对在Redis中存活的时间,单位为秒。当设置了TTL后,Redis会自动为键值对设置一个过期时间,当时间到达后,键值
原创 2023-11-11 03:57:06
154阅读
# Redis分片上限 ## 简介 在使用Redis进行分片存储时,需要考虑到Redis的分片上限问题。Redis分片上限是指在分片模式下,Redis集群所能够扩展的最大节点数量。当Redis集群中的节点数量达到上限时,可能会出现性能下降、负载不均衡等问题。因此,了解Redis分片上限对于设计和优化分布式系统至关重要。 ## Redis分片原理 在Redis集群中,数据被分片存储在多个节点
原创 2024-03-29 04:49:56
292阅读
     最近因为一些原因用到Redis不得不学一点,就想着记录一下学习的印记。若有不对的地方还望指出为谢。Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)的非关系数据库,可以将存储在内存的键值对持久化到硬盘,可使用复制特性来扩展读性能。Redis提供了五种不同数据结构类型与键(key)
  • 1
  • 2
  • 3
  • 4
  • 5