自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 Elasticsearch安装

下载下载ES安装包:https://www.elastic.co/cn/downloads/elasticsearch,建议使用7以下的版本,7以上的不兼容spring-data-elasticsearch。安装创建文件夹es:/usr/local/esmkdir /usr/local/es将文件上传到es文件夹中解压:tar xvf elasticsearch-6.4.2.tar...

2020-02-24 14:55:24 153

原创 Redis事务

一.事务的实现三个阶段:事务开始命令入队事务执行事务队列:以下为例127.0.0.1:6379> MULTIOK127.0.0.1:6379> set "name" "cc"QUEUED127.0.0.1:6379> set "sex" "man"QUEUED127.0.0.1:6379> get "name"QUEUED127.0.0....

2020-02-24 14:45:32 86

原创 Redis发布与订阅

介绍:订阅频道:subscribe "news.sport" "news.movie"退订频道:unsubscribe "news.sport" "news.movie"二.模式的订阅与退订订阅模式:psubscribe "new.*"退订模式:punsubscribe "new.*"...

2020-02-24 14:41:54 78

原创 Redis集群

一.节点cluster meet <ip> <port> //向节点握手cluster nodes //查看集群节点进行节点握手,握手成够后,node节点会将该节点加入到node节点的集群中。节点启动:cluster-enabled 为yes则为集群模式启动节点的数据结构:struct clusterNode{ //创建节点时间 mstime_...

2020-02-24 14:40:26 63

原创 Redis事件

一.文件事件文件事件处理器由四部分组成:套接字I/O多路复用程序文件事件分派器事件处理器事件类型:当套接字为可读时,或者有新的可应答的套接字出现时,套接字产生AE_READABLE事件。当套接字为可写时,套接字产生AE_WRITABLE事件。文件事件的处理器:连接应答处理器。用于对连接服务器监听套接字的客户端进行应答。命令请求处理器。负责从套接...

2020-02-24 14:35:05 79

原创 AOF持久化

一.AOF持久化的实现命令追加当AOF持久化功能打开状态时,服务器在完成一个命令之后,会以协议格式将被执行的写命令追加到服务器状态的aof_buf的缓冲区末尾:struct redisServer{ //AOF缓冲区 sds aof_buf;};AOF文件写入与同步在服务器处理文件事件的时候可能会执行写命令,使得一些命令被添加到aof_buf中。在服务器每次结...

2020-02-24 14:31:31 180

原创 RDB持久化

一.简介为了解决内存数据库数据丢失的问题,所以开发出RDB进行数据持久化。二.RDB文件的创建与载入RDB的保存存在两种命令,SAVE和BGSAVE。其中save是阻塞的,在执行save命令期间,该服务器将不会执行其他命令,直到save命令执行结束。bgsave是非阻塞的,执行bgsave时会创建一个子线程,然后由子线程负责创建RDB文件。redis是没有主动载入RDB文件的命令的,在re...

2020-02-24 14:25:19 50

原创 Redis数据库

一.服务器中的数据库每个redisDb都代表一个数据库,而数据库的数量由服务器的dbnum决定。struct redisServer{ //一个数组,保存redis中所有数据库 redisDb *db; //服务器数据库数量 int dbnum;}二.切换数据库127.0.0.1:6379> set msg "hello world"OK127...

2020-02-24 14:22:17 41

原创 Redis对象

对象结构redisObject结构:typedef struct redisObject { //类型 unsigned type:4; unsigned notused:2; //编码 unsigned encoding:4; unsigned lru:22; //引用计数 int refcount; //指向底层实...

2020-02-24 14:13:54 39

原创 Redis快速列表(quicklist)

127.0.0.1:6379> rpush lst 1 3 5 10086 "hello world"(integer) 5127.0.0.1:6379> OBJECT encoding lst"quicklist"quicklist结构在quicklist.c中的解释为A doubly linked list of ziplists意思为一个由ziplist组成的双向链表。...

2020-02-24 10:23:14 341

翻译 Redis压缩列表

2020-02-24 10:13:46 45

原创 Redis整数集合

一.整数集合的实现typedef struct intset{ //编码方式 unit32_t encoding; //集合包含的元素数量 unit32_t length; //保存元素的数组 int8_t contents[];}intset;二.升级当添加新的元素到整数集合中里面,并且新元素的类型比现有元素的类型都要长时,整数集合需要先...

2020-02-24 10:12:33 55

原创 Redis跳跃表

一.实现由zskiplistNode和zskiplist两个结构定义,其中zskiplistNode结构用于跳跃表节点,zskiplist结构用于保存跳跃表节点的相关信息,比如节点数量,表头表尾的节点指针。header:指向跳跃表的表头节点tail:指向跳跃表的表尾节点level:记录跳跃表内,层数最大的那个节点的层数(表头节点层数不计算在内)length:记录跳跃表的长度,也就是包...

2020-02-24 10:08:57 50

原创 Redis字典

哈希表table为一个数组。size为table中数组的大小。sizemask为size-1.used为hash表目前已有节点的数量。字典的结构type属性和privdata属性是针对不同类型的键值对,为创建多态字典而设置的。ht属性是包含两个项的数组,数组中每一个项都是一个dictht哈希表。哈希算法解决键冲突当有两个或两个以上的数量的键b被分配到哈希表数组同一索引时,我们...

2020-02-24 10:04:42 56

原创 Redis链表

1.链表的结构链表节点listNode:list结构:redis链表的特性:双端:链表节点带有prev和next,获取某个节点的前置与后置节点的复杂度都是0(1).无环:表头节点的prev和表未节点的next都指向NULL,对链表的访问以NULL为终点。带表头指针和表尾指针,通过list结构的head和tail,程序获取链表头节点和尾节点的复杂度都是O(1).带链表长度计算器...

2020-02-24 09:59:08 56

原创 简单动态字符串

struct sdshdr{ //记录buf中已使用字节的数量 //等于SDS中所保留字符串的长度 int len; //记录bug中未使用字节的数量 int free; //字节数组,用于保存字符串 char buf[];}2.SDS中buf的空间分配在C中,当对字符串进行操作的时候,会重新读字符串的长度,并重...

2020-02-24 09:53:32 239

原创 RabbitMq在Linux上的安装与部署

安装Erlang环境安装GCC GCC-C++ Openssl等模块,安装过就不需要安装了yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel安装ncursesyum -y install ncurses-devel安装erlang环境wget http://erlang.org/do...

2020-02-23 22:46:50 264

原创 SpringBoot集成RabbitMQ

spring boot版本<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.2.RELEASE</versio...

2020-02-23 22:41:34 121

原创 RabbitMQ介绍

RabbitMQ介绍RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。RabbitMQ主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层。保存这个数据。AMQP,即Advanced Message Queuing Protoco...

2020-02-23 21:53:02 113

原创 java8Callable与ThreadPoolExecutor数据分段处理

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, // 1 int maximumPoolSize, // 2 long keepAliveTime, // 3 ...

2019-10-29 14:19:04 646

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除