1,数据库中存储的数据类型有哪些?
数值: tinyint 十分小的数据 1个字节 , int 标准的整数 4个字节 常用 ,double 浮点数 8个字节 常用
float 浮点数 4个字节 , decimal 带sei某 字符串形式的浮点数
**浮点:**char 字符串固定大小的 0-255 , varchar 可变字符串 0-65535 ,text 大型文本 2的16方-1
时间:date YYYY-mm-DD 日期格式 , datetime YYYY-mm-DD HH: mm : ss
null
2,怎么保证redis集群的数据一致
主从复制;将主节点上的数据复制到从节点上。
数据同步:分为全量复制 和 部分复制(用于解决主从复制中,因网络闪断等原因造成的数据丢失)
部分复制有一个复制偏移量(offset),代表的是主节点向从节点传递的字节数;主节点每次向从节点传播N个字节数据时,主节点的offset增加N;从节点每次收到主节点传来的N个字节数据时,从节点的offset增加N。
3,怎么保证redis哨兵集群之间的通信
使用的是发布订阅原理。
哨兵的工作原理:1,状态感知,2,心跳检测,3,选举哨兵领导者,4,选取新的master
哨兵每隔10秒会向每个master节点发送info命令,info命令返回的信息中,包含了主从拓扑关系,其中包括每个slave的地址和端口号。有了这些信息后,哨兵就会记住这些节点的拓扑信息,在后续发生故障时,选择合适的slave节点进行故障恢复。
哨兵除了向master发送info之外,还会向每个master节点特殊的pubsub中发送master当前的状态信息和哨兵自身的信息,其他哨兵节点通过订阅这个pubsub,就可以拿到每个哨兵发来的信息。
自动故障迁移:哨兵领导者给备选的master节点发送slaveof no one命令,让该节点成为master。
之后,哨兵领导者会给故障节点的所有slave发送slaveof $newmaster命令,让这些slave成为新master的从节点,开始从新的master上同步数据。
最后哨兵领导者把故障节点降级为slave,并写入到自己的配置文件中,待这个故障节点恢复后,则自动成为新master节点的slave。
Redis集群官方推荐方案 Redis-Cluster
Redis-Cluster的特点:
(1) Redis-Cluster采用去中心化,每个节点都和其它节点通过互ping保持连接,每个节点保存整个集群的状态信息,可以通过连接任意节点读取或者写入数据
(2)整个集群有16384个槽,
4,镜像的拉去? 你自己打过镜像吗? docker的好处?docker的原理?
查看本地所有的镜像:docker images
拉取镜像:docker pull 镜像名称
创建启动容器,配置容器卷:docker run -it --name=镜像名 -v /volume centos:7 /bin/bash
打镜像: docker commit 容器id 镜像名称:版本号
镜像的原理:为什么Docker中centOS镜像只有200MB,而一个centos操作系统有几个G?
CentOS的镜像文件包含bootfs 和 rootfs, 而docket的centos镜像复用了操作系统的bootfs层,只有rootfs层。
5,git版本控制? 说一说过程
svn : 集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。
git: ,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。
git的使用:
git init 创建一个个人仓库
git commit:将暂缓区的文件提交到当前分支
git pull:下载远程仓库的最新信息到本地仓库
git push:将本地的仓库信息推送到远程仓库
git branch 查看分支
git checkout -b $new branch, 创建并且切换到当前分支
git merge $other_branch 合并分支
6,mongdb
7,es
8,微服务的组件有哪些?你在开发中用到的有哪些?
9,介绍一下你最近做的项目
10,阿里云点播
11,微信登录
12,常见的设计模式
13,jvm
14,数据库spl优化
微服务:
1,使用的接口测试工具:postman , swagger , knife 4 j (nai f)
2,分布式事务:zeata
3,文章的评论:Mongodb MongoTemplate.save 评论的CRUD
,4,式任务调度: XXL-job (和Quartz比较 api多)