6 佳亮

尚未进行身份认证

暂无相关简介

等级
TA的排名 2w+

mysql知识点整理

1.Mysql版本目前主流的版本是5.x, 5.0-5.1:版本4的延续,是对版本4的升级维护,5.4-5.x:mysql整合了三方公司的新存储引擎。2. mysql 核心目录(linux)/var/lib/mysql :mysql 安装目录/usr/share/mysql: mysql配置文件/usr/bin: mysql命令目录(mysqladmin,mysqldump等)/et...

2019-12-13 14:47:31

Mysql存储引擎选择

InnoDB:如果要提供提交,回滚和崩溃恢复能力的事务安全(ACID兼容)能力,并要求实现并发控制,InnoDB是个很好的选择。MyISAM:如果数据表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率;Memory:如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的Memory引擎,MySQL中使用该引擎作为临时表,存放查询的中...

2019-11-22 22:24:25

mysql索引

索引是一种用于快速查询行的数据结构,是SQL优化最简单也最重要的方式。1.B-Tree 索引最常见的一种索引,InnoDB,MyISAM,Memory这三种引擎都支持B-Tree索引。索引的本质是一种数据结构。B-Tree索引使用的数据结构是B+树,这种数据结构父节点不存储数据,只存储数值(数据)的范围,而在叶子节点存储数据和指针。1.1 聚簇索引(主键索引)InnoDB引擎的...

2019-10-16 17:40:34

redis(八):redis实现分布式锁的两种方式

在分布式系统中,如果多个节点同时操作同一个数据,会造成数据不一致的问题。和多个线程对共享变量进行操作遇到的问题一样。在java多线程中,一般会对操作共享数据的代码进行加锁,java提供了synchronized关键字可以很方便实现代码加锁。而在分布式系统中,有三种方式实现分布式锁:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁1. redis分布式锁...

2019-10-11 18:38:08

redis(七):redis分布式算法

1.传统分布式算法假设有4个redis节点,分别是redis0,redis1,redis2,redis3;有20个数据,这20个数据需要尽可能均匀地存储在这4个redis节点上。传统的做法是:将这20个数据(key)进行hash运算(如果是string类型,可以直接哈希。如果是文件,可以对唯一的文件名进行哈希),hash后的值和4(节点数量)进行取余运算,算出来是什么结果就落在哪个节点上。比如...

2019-09-24 21:29:16

java自定义HashMap

HashMap的数据结构是数组+链表,之前的博客中有自定义的数组列表和链表,这里的数组和链表就是使用之前自定义的数组列表和链表。实现的方法有put(K k,V v),get(K k),clear(),containsKey(K k),replace(K k,V v),remove(K k),不支持null值。确定数组下标的方式直接用key的hashcode和数组容量进行取余运算,没有使用k...

2019-09-20 19:44:36

java实现自定义ArrayList

通过数组实现了基本的增删改查,通过了基本的测试,但没有进行更严格的测试,没有考虑并发。public class MyArrayList<E> implements Iterable<E> { //ArrayList<String> strings; private static final int DEFAULT_CAPACITY = 10...

2019-09-17 13:55:43

java自定义LinkedList:实现单向链表的增删改查和反转

单向链表的节点由两部分组成,一个是值,一个是下一个节点的引用(指针)。其数据在内存中存储是不连续的,它存储的数据分散在内存中。单向链表向外暴露的只有一个头节点(Head),对链表的所有操作,都是直接或者间接地通过其头节点来进行的。添加元素时,在链表头部添加,效率最高。在链表的中间或尾部添加,效率很低。以下是根据链表的原理进行的简单的实现,不一定严谨和健壮java实现的代码如下...

2019-09-14 16:46:04

redis(六):redis主从复制

1.概述redis的主从复制实现多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是只读的(可以通过配置文件配置,使其支持读写,但一般从库都是只读模式),并接收主数据库同步过来的数据,一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数据库。 通过redis的主从复...

2019-08-30 18:47:23

redis(五):redis发布与订阅

redis的发布与订阅,和常见的消息中间件功能类似。Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。订阅者需要先订阅频道(channel),然后发布者向改频道发送消息,订阅者就能接收到该频道的消息。常用命令如下:subscribe channel [channel ...]:订阅一个或多个频道 psubscribe p...

2019-08-28 11:57:35

redis(四):redis的事务

1.概念可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会被序列化到队列中,按顺序地串行化执行而不会被其它命令插入,其他客户端提交的命令请求不会插入到事务执行命令序列中。redis事务就是在一个队列中,一次性、顺序性、排他性的执行一系列命令。2.和sql数据库的ACID的区别没有隔离级别的概念. 不保证原子性:单条命令是原子性执行的,但事务不保证原子性,且没有回...

2019-08-27 18:18:08

redis(三):redis的持久化

redis的持久化,有两种策略,分别是RDB(redis database)和AOF(append only file),默认采用第一种策略。1.RDB在指定的时间间隔内将内存中的数据集快照写入磁盘,也就Snapshot快照,它恢复时是将快照文件直接读到内存里。1.1 持久化原理Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结...

2019-08-27 16:16:47

redis(二):redis.conf配置文件

查看所有的可配置项命令: CONFIG GET *1.GENERAL通用daemonize:Redis 默认不是以守护进程的方式运行,可以通过该配置项修改,使用 yes 启用守护进程(Windows 不支持守护线程的配置为 no ),默认为no pidfile:当 Redis 以守护进程方式运行时,Redis 默认会把 pid 写入 /var/run/redis.pid 文件,可以通过...

2019-08-22 18:21:21

redis(一):CAP简介和常用数据类型的操作命令

1.CAP简介CAP定理又称CAP原则,指的是在一个分布式数据库系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),最多只能同时三个特性中的两个,三者不可兼得。简单理解就是CAP的3进2.CAP区别与sql数据库事务的ACID特性,一般适用于多种类型的数据库系统中。Consistency(一致性):或者强...

2019-08-20 16:36:22

ES中精确查询被分词字段

项目中,需要精确查询的一个ES字段,为text类型,text是要被分词的,整个字符串根据一定规则分解一个个term。因此一般情况下,text类型的字段,不能精确查询,keyword类型的可以使用termQuery查询。这种情况下可以使用matchPhrasePrefixQuery(...)来精确查询被分词的字段,然后再过滤一次。代码如下: public long countBy...

2019-05-21 16:37:45

客户端负载均衡:Spring Cloud Ribbon

Spring Cloud Ribbon是一个基于http和tcp的客户端负载均衡工具,基于Netflix Ribbon实现。Spring Cloud Ribbon虽然是Spring cloud的一个组件,但不需要像注册中心,配置中心等独立部署,它几乎存在于每一个spring cloud构建的微服务中。负载均衡是系统架构中一个非常重要的内容,它是对系统进行高可用,缓解网络压力和处理能力扩容的重要...

2019-04-27 00:12:31

Spring cloud之服务治理:Spring cloud Eureka

Spring cloud中的服务治理,大致分为两部分:服务注册,服务发现。服务治理是微服务架构中最核心最基础的模块,主要用来实现各个微服务模块之间的自动化注册与发现。在传统的架构中,随着服务或者模块原来越多,需要大量的静态配置来维护实例清单。这种状况,无论对于开发还是运维,都是比较头疼的事。为了解决微服务架构中服务实例维护问题,产生了大量的服务治理框架和产品,这些框架和产品都是围绕着服务注册与...

2019-04-23 00:56:57

java8中的lambda表达式和stream流

1.lambda表达式lambda表达式是为了简化编程而生。在java中,一些很常见的操作总是包含一些“静态”代码,这里的静态值得是:无论我们在该操作中实现什么逻辑,这些代码必须得有而且形式也一样。比如使用匿名内部类的java线程,按钮的点击事件等。lambda表达式就是要替代只有一个抽象方法的匿名内部类,让代码变得更简洁。因为这些“静态”代码形式是固定的,所以编译器能够自动推断出来,...

2019-04-13 23:30:31

Spring boot 实现solr索引的增添和查询

在solr实例中自定义域, <field name="user_name" type="text_general" indexed="true" stored="true"/> <field name="user_sex" type="text_general" indexed="true" stored="true"/> <field name...

2019-03-28 17:27:42

solr环境搭建以及添加文档和查询文档

1.solr的定义Solr是一个高性能,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面。文档通过Http利用XML 加到一个搜索集合中查询该集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结...

2019-03-28 13:45:31

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。