之前一篇文章 介绍了 Java 8 中 stream 基本用法,这里主要说 collect,flatmap,map 这三个比较重要的方法使用。
基础数据结构
class Person {
String name;
int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return name;
}
}
collect
下面的例子覆盖了 collec
Read more ...
本意上想要了解一下 Docker 容器中 Volume 的备份,毕竟重要的数据都在 Volume 中。然后顺带看了一下 Docker 镜像,容器的备份,不过镜像和容器托管到 Docker Hub 上也算是备份了。
Volume 可以叫做 数据卷,可供一个或者多个容器使用:
数据卷 可以在容器之间共享和重用
对 数据卷 的修改会立马生效
对 数据卷 的更新,不会影响镜像
数据卷 默认会一直存在,即使容器被删除
镜像备份
这里说的备份指的是直接从本地备份镜像文件,可以使用 docker save 命令将镜像打包成 tar 文件,之后
Read more ...
仅仅作为记录,为了不让树莓派吃灰。主要参考官网这篇文章。
Docker 的好用程度已经不比多说,经过这两年的发展已经非常成熟,还记得一年前买的书已经跟不上Docker的发展了,所以这里还是推荐 Docker 的官方文档,要比市面上存在所有书籍要详细。不过要是想要了解 Docker 的内部技术还是有不少好书可以参考。跑偏了,回到正题。
安装
Docker 官方已经支持 Raspbian Jessie,所以可以直接安装:
curl -sSL https://get.docker.com | sh
Docker client 只能被 root 或者
Read more ...
percona-toolkit 源自 Maatkit 和 Aspersa 工具,这两个工具是管理 MySQL 的最有名的工具,但 Maatkit 已经不维护了,全部归并到 percona-toolkit。Percona Toolkit 是一组高级的命令行工具,用来管理 MySQL 和系统任务,主要包括:
验证主节点和复制数据的一致性
有效的对记录行进行归档
找出重复的索引
总结 MySQL 服务器
从日志和 tcpdump 中分析查询
问题发生时收集重要的系统信息
在线修改表结构
这里主要介绍在线修改表结构功能。
在
Read more ...
Java 8 中 stream 大大简化了 Collection 的操作,所以这篇文章就简单的了解下 stream 的基本用法,关于 collect,flatmap,map 等等更加高级的用法可能还需要另开一篇 总结。
Stream API 借助于同样新出现的 Lambda 表达式,极大的提高编程效率和程序可读性。同时它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用 fork/join 并行方式来拆分任务和加速处理过程。
创建 stream
有很多种方法
通过集合的 stream() 方法或者 parallel
Read more ...
很早以前买一台VPS主要的功能就是翻墙,然后常年也仅仅是跑一个 Shadowsocks,后来渐渐的发现其实有一台服务器即使只有单核1G,也能够用来做很多事情。以前我也看过一些文章讲述如何充分利用起VPS,但大部分除了说自建网站,挂机刷 YouTube 赚钱外也都没有什么实质性的内容。而自从开始接触Docker,我渐渐的发现了很多服务,因此我自己搜罗了一些。当然其实 GitHub 上有一个 Awesome Selfhosted 这里面列举了成百上千种可以自己托管部署的服务,几乎可以代替掉日常生活中用到的80%的服务,可以自建 nextcloud 代替 Dr
Read more ...
Docker Volumes 机制通常用来给 Docker 容器保存持久化数据,使用 Volumes 有很多优势:
更容易备份和迁移
使用 Docker CLI 命令或者 Docker API 来管理
可以在 Linux 和 Windows 上使用
可以更安全得在多个容器中共享
Volume drivers 允许容器将内容保存到远端,云服务提供商,或者加密volume内容,或者增加其他功能
新 Volume 的内容可以被容器预先填充, volume 会先将容器内容拷贝到容器外目录
Volumes 通常也优于容器的可写层,使
Read more ...
Gogs 是一个能够自建Git托管服务的开源项目,用 Go 语言实现。因为较之 GitLab 轻量化一些,所以受到一定欢迎。
使用 Docker 来搭建 Gogs 服务时,需要额外依赖 MySQL,网上一般的教程都是先启动一个 MySQL 容器,开放端口,然后在启动 Gogs 容器配置。其实可以使用 docker-compose 一次性启动好。
version: '3.3'
services:
gogsdb:
image: mysql:5.7
container_name: gogsdb
restart: always
Read more ...
以下的内容适用于 docker-compose 版本 version 2 和 version 3。先来看 Docker 官方文档中关于 Docker Compose and Django的例子,可以使用 depends_on 来访问容器中的数据
version: '2'
services:
db:
image: postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
p
Read more ...
Privoxy 是一款不进行网页缓存且自带过滤功能的代理服务器,本文主要使用其 socks 转 http 代理的功能。Privoxy 也能够过滤网页内容,管理 Cookie,控制访问,去广告、横幅、弹窗等等,因此可以作为广告过滤。
Privoxy is a non-caching web proxy with advanced filtering capabilities for enhancing privacy, modifying web page data and HTTP headers, controlling access, and
Read more ...