
后端
文章平均质量分 79
我在阳澄湖畔吃炸鸡
这个作者很懒,什么都没留下…
展开
-
Redis学习(十)——db.c
文章目录1.lookupKey2.lookupKeyRead3.lookupKeyReadOrReply4.addReply5.addReplyErrorFormat6.dbRandomKey7.dbUnshareStringValue8.emptyDb9.selectDb10.flushdbCommand11.flushallCommand12.delCommand13.keysCommand14.scanGenericCommand15.moveCommand16.expireIfNeeded17.ex原创 2021-06-29 20:50:37 · 341 阅读 · 0 评论 -
Redis学习(九)——数据库
文章目录一、数据库的结构二、有关数据库的操作1.键空间的操作2.键的生存时间或过期时间3.过期键的删除4.AOF、RDB对过期键的处理4.复制一、数据库的结构数据库的数据结构如下typedef struct redisDb { // 数据库键空间 dict *dict; // 键的过期时间,字典的键为键,字典的值为过期事件 UNIX 时间戳 dict *expires; // 正处于阻塞状态的键原创 2021-06-28 21:03:45 · 152 阅读 · 0 评论 -
Redis学习(七)——对象
文章目录一、对象二、字符串对象三、列表对象四、哈希对象五、集合对象六、有序集合对象一、对象前面学习了SDS、双端列表,字典,压缩列表,整数集合等。但是Redis并没有直接使用这些数据结构来实现键值对数据库,而是使用这些数据结构来创建一个对象系统,这个系统包含字符串对象,列表对象,哈希对象,集合对象和有序集合对象。通过这五种不同类型的对象,redis在执行命令前,根据对象的类型来判断一下对象是否可以执行给定的命令,另一个好处是我们可以通过不同的场合从而设置多种不同的数据结构实现,从而优化对象在不同场景的原创 2021-06-24 16:20:17 · 160 阅读 · 0 评论 -
Redis学习(六)——压缩列表
文章目录一、压缩列表一、压缩列表压缩列表(ziplist)是列表键和哈希键的底层实现之一。当一个列表键只包含列表项,并且每个列表要么就是长度较短的字符串,要么就是小整数值,那么redis就会使用压缩列表作为列表键的底层实现。压缩列表是redis为了节约而开发的,是一系列由特殊编码的连续内存块组成的顺序型数据结构。一个压缩列表可以包含任意多个节点,每个节点包含一个字节数组或者一个整数值。压缩列表的布局<zlbytes><zltail><zllen><entry原创 2021-06-23 22:45:18 · 2287 阅读 · 0 评论 -
Redis学习(五)——整数集合
文章目录一、整数集合1.介绍2.升级三、API四、源码1.intsetNew2.intsetAdd3.intsetRemove4.intsetFind5.intsetRandom6.intsetGet一、整数集合1.介绍整数集合是集合键的底层实现之一,当一个集合只包含整数元素,并且这个集合的元素不多时,redis就会使用整数集合作为集合键的底层实现。整数集合用于保存整数值的集合抽象数据结构,它可以保存 类型为int16_t、int32_或者int64_t的整数值,并且保证集合中不会出现重复元素。它原创 2021-06-23 13:38:08 · 197 阅读 · 0 评论 -
Redis学习(四) —— 跳跃表
文章目录一、跳跃表二、 跳跃表API三、API的源码1.zslCreate2.zslFree3.zslInsert4.zslDelete5.zslFirstInRange6.zslLastInRange7.zslGetRank一、跳跃表跳跃表(skiplist) 是一种有序数据结构,它通过在每个节点中维持多个指向其它 节点的指针,从而达到快速访问节点的目的,其结构如下:typedef struct zskiplistNode { // 成员对象 robj *obj; //原创 2021-06-22 20:25:30 · 107 阅读 · 0 评论 -
Redis学习(三)——字典
文章目录一、字典1.字典的结构二、哈希算法和rehash三、字典的API四、源码1.dicCreate2.dicExpand3.dicRehash4.dicAddRaw5.dictReplace6.dictReplaceRaw7.dictGenericDelete8.dictRelease9.dictFind10.dictFetchValue11.dictResize12.dicGetIterator13.dictGetSafeIterator14. dictNext15.dictReleaseIterat原创 2021-06-22 14:59:15 · 216 阅读 · 0 评论 -
Redis学习(二)——链表
文章目录一、链表的结构二、链表的API三、链表api源码1.listCreate2.listRelease3.listAddNodeHead4.listAddNodeTail5.listInsertNode6.listDelNode7.listGetIterator8.listReleaseItertor9.listRewind10.listRewindTail11.listNext12.listDup13.listSearchKey14.listIndex15.listRotate一、链表的结构typ原创 2021-06-20 17:49:34 · 295 阅读 · 0 评论 -
Redis学习(1)-SDS
文章目录前言一、SDS的定义二、区别及优点三、SDS的API以及源码1.sdsnewlen2.sdsnew3.sdsempty4.sdslen前言一、SDS的定义Redis没有直接使用C语言传统的字符串表示(以下简称字符串),使用的是一种叫简单动态字符串(simple dynamic string)的类型。sds.h/sdshdr结构表示SDS值如下struct sdshdr { // buf 中已使用的长度 int len; // buf 中剩余可用空间的长原创 2021-06-19 20:38:27 · 259 阅读 · 0 评论 -
了解Zookeeper
文章目录一、Zookeeper概述二、Zookeeper基础1.API2. znode的不同类型3.监视与通知,4.版本三、Zookeeper架构1.zookeeper仲裁2. 会话一、Zookeeper概述ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。关于zookeeper 这样的系统功能的讨论都围原创 2021-06-16 14:22:01 · 143 阅读 · 0 评论 -
RabbitMQ虚拟主机
文章目录一、介绍二、创建三、代码四、结果一、介绍每一个RabbitMQ服务器都能创建虚拟的消息服务器,我们称之为虚拟主机(virtual host),简称vhost.每一个vhost是一个独立的小型服务器,拥有自己独立的队列,交换器等。它拥有自己独立的权限。vhost之于这个RabbitMQ服务器就像虚拟机于物理服务器一样。它能将众多客户分割开来,又可以避免队列和交换器等的命名冲突。vhost之间是绝对隔离的。通常来讲,默认的vhost名字是"/".二、创建使用命令行模式rabbitmqctl原创 2021-06-11 10:06:06 · 1349 阅读 · 0 评论 -
RabbitMQ的TTL和死信队列
文章目录前言一、TTL2.死信队列3.结果前言代码可以在 我的仓库里找到https://gitee.com/song_mengyu/Example/tree/master/Project/rabbit-ttl一、TTLTTL ,Time to Live,过期时间,rabbitMQ可以对消息和队列设置。设置类package com.my;import org.springframework.amqp.core.Queue;import org.springframework.beans.fa原创 2021-06-10 16:45:23 · 352 阅读 · 0 评论 -
RabbitMQ备份交换器
文章目录一、介绍二、配置三、代码部分三、结果一、介绍备份交换器,英文名字为Alternate Exchange, 简称AE。我们知道有这样一个参数,mandatory。当这个参数为false时,如果投放消息时没有找到指定的路由键,消息就会直接丢弃。而当这个参数为true时,如果消息不会直接丢弃,而是将其返回生产者,而这样需要在生产者里添加一些代码。我们不想复杂生产者的编程逻辑,同时又不想消息丢失就可以使用AE。二、配置 <dependencies> <depen原创 2021-06-10 12:20:19 · 190 阅读 · 0 评论 -
RabbitMQ 发送接受确认与mandatory参数
文章目录前言一、 配置一、发送确认三、上节的修改三、消费者确认前言代码什么的在我的仓库里都有https://gitee.com/song_mengyu/Example/tree/master/Project/rabbit-ack-test一、 配置<dependencies> <dependency> <groupId>org.springframework.boot</groupId>原创 2021-06-09 19:05:02 · 814 阅读 · 0 评论 -
RabbitMQ六种模式
文章目录前言一、配置一、Hello World1.生产者2.消费者二、Work Queues1.生产者2.消费者三、Publish/Subscribe前言一、配置xml配置文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"原创 2021-06-08 17:13:56 · 3988 阅读 · 0 评论 -
RabbitMQ开发向导
文章目录前言一、Queue二、Exchange前言其实通过之前讲的入门知识还有示例,大概就能了解怎么进行开发,这里大概对其中的一些配置进行分析吧。一、Queue首先我们看Queue类的代码public class Queue extends AbstractDeclarable { public static final String X_QUEUE_MASTER_LOCATOR = "x-queue-master-locator"; private final String n原创 2021-06-06 18:41:56 · 275 阅读 · 1 评论 -
RabbitMQ入门
文章目录一、相关概念介绍1.生产者和消费者2.队列3.交换器、路由键,绑定4.交换器类型5.RabbitMQ运转流程二、AMQP协议介绍一、相关概念介绍RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的。它整体上是一个生产者与消费者模型,主要负责接收、存储和转发消息。1.生产者和消费者Producer:生产者,就是投递消息的一方。消息包含消息体和标签两个部分。消息体也可称为payload, 一般是带有逻辑原创 2021-06-03 22:57:46 · 182 阅读 · 0 评论 -
【RabbitMQ】第一个SpringBoot应用
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码原创 2021-06-03 10:00:05 · 173 阅读 · 0 评论 -
RabbitMQ安装(ubuntu)
文章目录前言一、直接安装前言一、直接安装首先得安装erlangsudo apt-get install erlang这样在我这个时间点安装的是20.0的版本,而官网已经出到24了,想要安装很复杂,我也尝试过,失败了。不过20.0也能使就这样吧。然后安装rabbitmqsudo apt-get insatll 启动、停止、重启、状态rabbitMq命令sudo rabbitmq-server startsudo rabbitmq-server stopsudo rabbitmq-se原创 2021-06-01 22:08:08 · 312 阅读 · 2 评论 -
Docker安装配置(ubuntu)
文章目录一、Docker安装配置二、设置容器自启动三、进入容器一、Docker安装配置安装sudo apt-get install docker.io查看是否设置开机启动systemctl list-unit-files | grep enable设置开机启动systemctl enable docker.service关闭开机启动systemctl disable docker.service二、设置容器自启动如果容器没有启动则docker run --restart=al原创 2021-06-01 21:52:52 · 179 阅读 · 0 评论 -
Dubbo过滤器
文章目录一、过滤器概述二、原理1.初始化的实现原理2.AccessLogFilter2.ExecuteLimitFilter3.Context Filter4.ExceptionFilter5.TimeoutFilter6.TokenFilter7.TpsFilter一、过滤器概述Dubbo 中的过滤器和 Web 应用中的过滤器的概念是一样的 , 提供了在服务调用前后插入自定义逻辑的途径 。 过滤器是整个 Dubbo 框架中非常重要的组成部分 , Dubbo 中有很多功能都是基于过滤器扩展而来的 。 过原创 2021-05-30 16:44:21 · 340 阅读 · 0 评论 -
Dubbo 集群容错(2)
文章目录一、负载均衡1.Random 负载均衡2.RoundRobin 负载均衡3.LeastActive负载均衡4.一致性Hash负载均衡二、Merger的实现三、Mock一、负载均衡我们发现在很多容错策略中都会使用负载均衡方法 , 并且所有的容错策略中的负载均衡都使用了抽象父类 Abstractclusterinvoker 中定义的 Invoker select 方法 , 而并不是直接使用 LoadBalance 方法 。 因为抽象父类在LoadBalance 的基础上又封装了一些新的特性 :(1原创 2021-05-29 16:38:36 · 95 阅读 · 0 评论 -
Dubbo集群容错(1)
文章目录前言一、Cluster层概述二、容错机制的实现前言《深入理解Apche Dubbo与实战》 第七章笔记一、Cluster层概述可以将Cluster层看作一个集群容错层,该层中包含Cluster、Directory、Router、LoadBalance等几大核心接口。其中,Cluster层指的是对外的整个集群容错层;而Cluster是容错接口,提供Failover、Failfast等容错策略。Cluster层的总体流程如下:(1) 生成Invoke对象(2)获得可调用的服务列表(3)原创 2021-05-29 14:32:09 · 136 阅读 · 0 评论 -
Dubbo远程调用
文章目录前言一、Dubbo调用介绍二、Dubbo协议三、编码与解码四、Telnet调用原理前言Dubbo核心调用流程Dubbo协议详解Dubbo编解码器原理Telnet调用原理Dubbo线程模型一、Dubbo调用介绍假如手写简单的RPC调用,需要把调用信息传递到服务端,把方法参数等信息序列化传递到服务端,然后在服务端按照客户端的序列化顺序做一次反序列化来读取信息,然后拼装成请求对象进行服务反射调用,最终将调用结果返回给客户端。在Dubbo中调用基本类似。首先在客户端启动时会从注册中原创 2021-05-25 22:28:51 · 1674 阅读 · 0 评论 -
Dubbo启停原理
文章目录前言一、配置解析1.基于schema设计解析2.基于XML的配置原理 解析3.基于注解配置原理解析二、服务暴露1.配置承载初始化2.远程服务的暴露机制3.本地服务的暴露机制三、服务消费机制1.单注册中心消费2.多注册中心消费原理四、优雅停机原理解析前言《深入理解Apache Dubbo与实战》第五章Dubbo配置解析Dubbo服务暴漏原理Dubbo服务消费原理Dubbo优雅停机原理一、配置解析目前 Dubbo 框架同时提供了 3 种配置方式: XML 配置 、 注解 、 属性文件原创 2021-05-24 21:42:08 · 237 阅读 · 0 评论 -
Dubbo扩展点加载机制
文章目录前言一、加载机制概述1.Java SPI2.扩展点加载机制的改进3.扩展点的配置规范4.扩展点的分类与缓存5.扩展点的特性二、扩展点注解1.扩展点注解:@SPI2.@Adaptive3.@Activate三、ExtensionLoader的工作原理1.工作流程2.getExtension的实现原理3.getAdaptiveExtension 的实现原理4.getActivateExtension的实现原理四、扩展点动态编译的实现1.Javaassit 动态代码编译2.JDK动态代码的编译前言《深原创 2021-05-23 19:42:20 · 201 阅读 · 0 评论 -
《深入理解Apache Dubbo与实战》第三章的阅读笔记
文章目录前言一、注册中心概述1.简介2.工作流程二、Zookeeper注册1.原理2.发布/订阅三、Redis的注册四、缓存五、设计模式前言本文是《深入理解Apache Dubbo与实战》第二章的阅读笔记。第二章的主要内容是讲注册中心,书中主要围绕:1.注册中心的工作流程2.注册中心的数据结构3.订阅发布的实现4.缓存机制5.重试机制6.设计模式这几个部分讲解一、注册中心概述1.简介Dubbo通过注册中心实现了分布式环境中各服务之间的注册与发现。其作用如下:1.动态加入。一个服原创 2021-05-15 21:01:36 · 234 阅读 · 0 评论 -
《深入理解Apache Dubbo与实战》第二章阅读笔记
文章目录前言一、工程结构与依赖二、xml方式二、基于注解实现三、基于API方式前言《深入理解Apache Dubbo与实战》第二章阅读笔记,内容主要是通过xml,注解以及api的方式实现第一个dubbo程序。其中遇到了一些坑,比如依赖的配置,因为书上并没有介绍依赖的配置,本人花了一段时间才解决。一、工程结构与依赖总的结构如图所示,父工程是echo。echo-api里是服务的接口,echo-server,echo-client是使用xml方式的服务器与客户端。echo-server-annotat原创 2021-05-14 20:40:10 · 183 阅读 · 0 评论