Redis中的数据结构与对象

动态字符串Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组),而是自己构建了一种名为简单动态字符串(SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。在Redis里面,C字符串只会作为字符串字面量用在一些无需对字符串值进行修改的地方。当Redis需要的不仅仅是一个字符

Netty实战阅读笔记

Netty的核心组件Netty的主要构件块:(1)、Channel(2)、回调(3)、Future(4)、事件和ChannelHandler这些构建块代表了不同类型的构造:资源、逻辑以及通知。ChannelChannel是JavaNIO的一个基本构造。它代表一个实体(如一个硬件设备、一个文件、一个网

innodb的索引和锁

概述索引是应用程序设计和开发的一个重要方面。若索引太多,应用程序的性能可能会收到影响。而索引太少,对查询性能又会产生影响。要找到一个合适的平衡点,这对应用程序的性能至关重要。innoDB存储引擎索引概述InnoDB存储引擎支持一下几种常见的索引:(1)、B+树索引(2)、全文索引(3)、哈希索引In

[转载]红黑树的理解与 Java 实现

前言前段时间在研究JDK1.8的hashmap源码,看到put方法的插入环节,遇到了红黑树,不得不停止阅读源码的过程,因为还没掌握红黑树是无法完全读透hashmap源码的。红黑树作为一种数据结构,它被应用得非常多,可能很多人不认识它,但其实它已经在默默为我们的代码在发光发热。例如,你只要在Java中

数据库分库分表笔记(一)

1、概述数据库分库分表后就会涉及到如何写入和读取数据的问题,应用开发人员主要关心如下几个问题:是否需要在应用层做改造来支持分库分表,即是在应用层进行支持,还是通过中间件层。如果需要应用层做支持,那么分库分表的算法是什么。分库分表后,join是否支持,排序分页是否支持,事务是否支持。

数据结构笔记(一):队列&栈

队列:先入先出的数据结构本章节中,我们将首先介绍先入先出(FIFO)及其在队列中的工作方式。本章的目的是帮助你:理解FIFO和队列的定义;能够自己实现队列;熟悉内置队列结构;使用队列来解决简单的问题。先入先出的数据结构

高性能Mysql阅读笔记(二)

1、优化数据访问大部分性能低下的查询都可以通过减少访问的数据量的方式进行优化。对于低效的查询,通过下面两个步骤来分析:(1)、确认应用程序是否在检索大量超过需要的数据。这通常意味着访问了太多的行,但有时候也可能是访问了太多的列。(2)、确认Mysql服务器层是否在分析大量超过需要的数据行。1.1、是

高性能Mysql阅读笔记(一)

1、创建高性能的索引索引是存储引擎用于快速找到记录的一种数据结构,这是索引的基本功能。索引对于良好的性能非常关键。尤其是当表中的数据量越来越大时,索引对性能的影响越发重要。在数据量较小且负载较低时,不恰当的索引对性能的影响可能还不明显,但是当数据量逐渐增大时,性能则会急剧下降。索引可以包含一个或多个

redis笔记(二)

1、线程IO模型1.1、非阻塞IO当我们调用套接字的读写方法,默认它们是阻塞的,比如read方法要传递进去一个参数n,表示最多读取n个字节后再返回,如果一个字节都没有,线程就会卡在那里,直到新的数据到来或者连接关闭,read方法才可以返回,线程才能继续处理。write方法一般不会阻塞,除非内核为套接

redis笔记(一)

1、redis的5种基础数据结构Redis有5种基础数据结构,分别为:string(字符串)、list(列表)、hash(字典)、set(集合)和zset(有序集合)。1.1、string(字符串)字符串string是redis种最简单的数据结构,它的内部表示就是一个字符数组。redis所有的数据结