0%

Redis实现高可用,支持三种集群模式:主从模式、哨兵模式以及cluster模式。

主从模式

定义

在Redis集群中,让若干个Redis服务器去复制另一个Redis服务器,我们定义被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(replica),这种模式叫做主从复制模式。

作用

  • 为数据提供多个副本,支持高可用。
  • 实现读写分离(主节点负责写,从节点负责读,主节点定期将数据同步到从节点,保证数据的一致性)。
  • 任务分离,如从服务器负责备份工作和计算工作。

主从复制的特点

阅读全文 »

什么是持久化?

将数据保存到可永久保存的存储设备中,持久化的主要应用是将内存中的对象存储到数据库中,或者存储到磁盘文件中、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目前在开源社区相当活跃,在GitHub上拥有两万多Star,是当前最流行的监控系统,相比Zabbix,定制灵活度更高,而且Prometheus在云环境、容器支持这块优势明显。

Prometheus

简介

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

prometheus.png

下载&安装

阅读全文 »

ELK简介

你还在为线上排查日志找不到节点服务器而犯愁吗?今天手把手教大家如何搭建一套日志收集系统,用来代替传统的人工登录服务器查看后台服务日志的方式。

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

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

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

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

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

elk-.png

Elastic Search

简介

阅读全文 »

一、背景

    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

阅读全文 »