0%

什么是持久化?

将数据保存到可永久保存的存储设备中,持久化的主要应用是将内存中的对象存储到数据库中,或者存储到磁盘文件中、XML数据文件中等。

也可以这样理解持久化:

应用层:如果关闭( Close )你的应用,然后重新启动则先前的数据依然存在。

系统层:如果关闭( Shut Down )你的系统(电脑),然后重新启动则先前的数据依然存在。

为何要持久化?

Redis的数据是缓存在内存中的,当你重启系统或者关闭系统后,缓存在内存中的数据会丢掉,因此为了让数据能够长期保存,就要将Redis里的数据做持久化存储。

阅读全文 »

启动Redis,打开客户端

1
2
./redis-server /etc/redis.conf 
./redis-cli

通用命令

命令 解释
get key 查询key
set key value 设置key
keys * *通配多个字符
keys key 获取名字为key的key
keys ?ey 通配单个字符
keys k[eio]y 通配括号内的某一个字符
randomkey 随机返回key
type key 返回存储类型
exists key 判断key是否存在
del key 删除key
rename key newkey 修改key名称
renamenx key newkey 如果存在修改失败,如果不存在则修改成功
select n 切换到redis数据库,默认16个,从0开始编号
expire key 时间(s) 设置有效期
ttl key 查询有效期(-1是永久有效 -2不存在的key)
persist key 设置永久有效

字符串命令

命令 解释
set key value ex 秒数 或 px 毫秒数 过期时间
mset key1 value1 key2 value2 key3 value3 一次设置多个值
mget key1 key2 key3 一次获取多个值
getset key newvalue 返回上一个值,同时修改当前为新值
incr key 增加
decr key 减少
incrby key num 增加某个num
decrby key num 减少某个num

列表命令

阅读全文 »

什么是Redis?

Remote Dictionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

与传统数据库不同的是 Redis 的数据是存在内存中的,所以存写速度非常快,因此 Redis 被广泛应用于缓存方向。

数据类型有哪些?

它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

安装

阅读全文 »

部署平台选型

前言

GitHub和Gitee(码云)是国内外比较流行的代码托管平台,现都推出GitHub/Gitee Pages可以存放静态网页代码,因此可以用来搭建自己的博客。

优缺点

平台 优点 缺点
Github 全球最流行的平台,且免费 国内由于有墙,访问太慢
Gitee 国内访问快 阉割部分功能,提供有偿服务,比如自动部署、自定义域名等需要升级Gitee Pages Pro

giteepages.png

如上图所示,Gitee是需要付费的,但是考虑到部署到Github上,在国内访问真的太慢,经常加载要十几秒,最终折中了选择,即两个平台同时部署,国外的用户可以访问Github,国内的用户访问Gitee,从而优化访问速度。

阅读全文 »

什么是Hexo?

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

优势

  1. Node.js 所带来的超快生成速度,让上百个页面在几秒内瞬间完成渲染。
  2. Hexo 支持 GitHub Flavored Markdown 的所有功能,甚至可以整合 Octopress 的大多数插件。
  3. 只需一条指令即可部署到 GitHub Pages,Gitee Pages, Heroku 或其他平台。
  4. 强大的 API 带来无限的可能,与数种模板引擎(EJS,Pug,Nunjucks)和工具(Babel,PostCSS,Less/Sass)轻易集成

如何安装?

安装Hexo前需要先安装Node.js和Git,支持windows、Mac、Linux安装,本文主要介绍在如何在Linux上安装

安装Git

阅读全文 »

1.idea中安装docker插件;

2.新建DockerFile,内容如下。

1
2
3
4
5
6
7
8
9
10
11
12
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER vic <test@163.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD es-1.0.0-SNAPSHOT.jar app.jar
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

3.将es-1.0.0-SNAPSHOT.jar以及DockerFile放到一个目录中,执行命令,生成docker镜像。

1
docker build -t es:1.0.0 -f DockerFile .

4.查看当前的镜像 docker images,并运行镜像,启动容器。

1
docker run -d -p 8081:8081 es:1.0.0
阅读全文 »

一、Prometheus

1.1 简介

Prometheus是一套开源的监控&报警&时间序列数据库的组合,基于应用的metrics来进行监控的开源工具 。

prometheus.png

1.2 下载&安装

  • 下载地址:https://prometheus.io/download/

  • 解压:tar zxvf prometheus-2.12.0.linux-amd64.tar.gz

  • 编辑: prometheus.yml,其中包括全局、alertmanager、告警规则、监控job配置,具体内容如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
- 192.168.88.69:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
- "test_rules.yml"
# - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'

# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.

static_configs:
- targets: ['192.168.88.69:9090']

- job_name: 'monitor'
scrape_interval: 5s
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['192.168.88.69:8008']

- job_name: 'node-exporter'
static_configs:
- targets: ['192.168.88.69:9100']
阅读全文 »

一、ELK简介

    在传统项目中,如果在生产环境中,有多台不同的服务器集群,如果生产环境需要通过日志定位项目的Bug的话,需要在每台节点上使用传统的命令方式查询,这样效率非常低下。因此我们需要集中化的管理日志,ELK则应运而生。ELK=ElasticSeach+Logstash+Kibana,日志收集原理如下所示。

1、每台服务器集群节点安装Logstash日志收集系统插件

2、每台服务器节点将日志输入到Logstash中

3、Logstash将该日志格式化为json格式,根据每天创建不同的索引,输出到ElasticSearch中

4、浏览器使用安装Kibana查询日志信息 

ELK.png

阅读全文 »

一、背景

    Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

二、配置环境路径

操作系统 server.properties hosts
windows C:\opt\settings\server.properties C:\Windows\System32\drivers\etc\hosts
linux /opt/settings/server.properties /etc/hosts

三、具体配置

3.1 server.properties

env=DEV

阅读全文 »

一、概述

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。

二、安装

2.1 安装yasm

1
2
3
4
5
# wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
# tar -zxvf yasm-1.3.0.tar.gz
# cd yasm-1.3.0
# ./configure
# make &amp;&amp; make install

2.2 安装FFmpeg

1
2
3
4
5
6
#yum -y install bzip2
#tar jxvf ffmpeg-4.0.2.tar.bz2
#cd ffmpeg-4.0.2
# ./configure
# make
# make install
阅读全文 »