MySQL 日志常见问题
mysql 日志
MySQL 里有两个日志,即:重做日志(redo log)和归档日志(binlog)。
其中,binlog 可以给备库使用,也可以保存起来用于恢复数据库历史数据。它是实现在 server 层的,所有引擎可以共用。redo log 是 InnoDB 特有的日志,用来支持 crash-safe 能力。
你一定听过 MySQL 事务的两阶段提交,指的就是在事务提交的时候,分...
2019-01-14 10:29:09 |
SQL
负载均衡
DNS 负载均衡
开始呢,我们的应用只有一台web-server。那么你希望:
输入guduyan.com就能定位该server!
那很简单,只要在DNS里配上域名和你的server映射关系,就能访问到啦!
好,现在呢,多了一台web-server,你就可以通过在DNS里加一条配置,以DNS轮询方式进行负载均衡。
Nginx+DNS
现在假设,我们多了一些需求啊。你的系统按照功能模...
2019-01-14 10:29:09 |
Distributed
Redis 是什么?redis 的应用场景有哪些?
Redis 是什么?
Redis是一种开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。
它支持数据结构,例如字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志和半径查询的地理空间索引。
中文官网
Redis 使用场景
分布式锁
Redis 分布式锁设计
计数器(string)
如知乎每个问题的被浏览器次数
set key 0
in...
2019-01-14 10:29:09 |
Cache
java 浅拷贝,深度拷贝与属性复制
问题
日常工作中,我们希望复制一个对象A的属性到对象B,且保证二者的变化不会互相影响。
直接赋值,肯定是无法满足的。
深度拷贝与浅拷贝
概念
浅复制(浅克隆)
被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。
换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。
深复制(深克隆)
被复制对象的所有变量都含有与原来的对象相同...
2019-01-09 15:13:13 |
Java
Java Thread 小结
基础知识
java thread
使用线程的目的
用多线程只有一个目的,就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。
多线程,并行与并发
很多人都对其中的一些概念不够明确,如同步、...
2019-01-09 00:44:18 |
Java
Greenplum Database
greenplum
Experience Greenplum Database , an open-source massively parallel data platform for analytics, machine learning and AI.
greenplum 与 postgresql
greenplum是利用了 postgresql 数据库的框架,也就相当于说是,G...
2019-01-09 00:44:18 |
Database
Greenplum Database-02-sharing nothing/everything/disk/memory
业务背景
当今世界是一个信息化的世界,我们的生活中无论是生活、工作、学习都离不开信息系统的支撑。
而信息系统的背后用于保存和处理最终结果的地方就是数据库。因此数据库系统就变得尤为重要,这意味着如果数据库如果面临问题,则意味着整个应用系统也会面临挑战,从而带来严重的损失和后果。
如今“大数据”这个词已经变得非常流行,虽然这个概念如何落地不得而知。但可以确定的是,随着物联网、移动应用的兴起...
2019-01-09 00:44:18 |
Database
算法之最大值、最小值
问题
求一个随机数组的最大值和最小值。
排序
可以首先对数据排序,然后获取。
本文暂时不考虑排序的情况,前提是数组乱序。
常见方式
遍历
最简单的就是直接遍历数组。
如何从n个数里找到最大值与最小值?
很容易想到,用一个循环找到最大值和最小值,就能搞定。
(int, int) find_max_min(int arr[n]){
int max = -infinit...
2019-01-07 11:29:47 |
Althgorim