Redis实现高可用,支持三种集群模式:主从模式、哨兵模式以及cluster模式。
主从模式
定义
在Redis集群中,让若干个Redis服务器去复制另一个Redis服务器,我们定义被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(replica),这种模式叫做主从复制模式。
作用
- 为数据提供多个副本,支持高可用。
- 实现读写分离(主节点负责写,从节点负责读,主节点定期将数据同步到从节点,保证数据的一致性)。
- 任务分离,如从服务器负责备份工作和计算工作。
1 | ./redis-server /etc/redis.conf |
| 命令 | 解释 |
|---|---|
| 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 |
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 |

如上图所示,Gitee是需要付费的,但是考虑到部署到Github上,在国内访问真的太慢,经常加载要十几秒,最终折中了选择,即两个平台同时部署,国外的用户可以访问Github,国内的用户访问Gitee,从而优化访问速度。
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
安装Hexo前需要先安装Node.js和Git,支持windows、Mac、Linux安装,本文主要介绍在如何在Linux上安装
1 | # 基础镜像使用java |
1 | docker build -t es:1.0.0 -f DockerFile . |
1 | docker run -d -p 8081:8081 es:1.0.0 |
你还在为线上排查日志找不到节点服务器而犯愁吗?今天手把手教大家如何搭建一套日志收集系统,用来代替传统的人工登录服务器查看后台服务日志的方式。
在传统项目中,如果在生产环境中,有多台不同的服务器集群,如果生产环境需要通过日志定位项目的Bug的话,需要在每台节点上使用传统的命令方式查询,这样效率非常低下。
因此我们需要集中化的管理日志,ELK则应运而生。ELK=ElasticSeach+Logstash+Kibana,日志收集原理如下所示。
每台服务器集群节点安装Logstash日志收集系统插件
每台服务器节点将日志输入到Logstash中
Logstash将该日志格式化为json格式,根据每天创建不同的索引,输出到ElasticSearch中
浏览器使用安装Kibana查询日志信息

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
| 操作系统 | server.properties | hosts |
|---|---|---|
| windows | C:\opt\settings\server.properties | C:\Windows\System32\drivers\etc\hosts |
| linux | /opt/settings/server.properties | /etc/hosts |
env=DEV