资料内容:
1. redis各种应⽤场景
a. 更多的数据结构;
b. 可持久化;
c. 计数器;
d. 发布-订阅功能;
e. 事务功能;
f. 过期回调功能;
g. 队列功能;
h. 排序、聚合查询功能。
2. redis持久化机制
a. RDB:快照形式是直接把内存中的数据保存到⼀个 dump ⽂件中,定时保存,保存策略。(会丢数据)
b. AOF:把所有的对Redis的服务器进⾏修改的命令都存到⼀个⽂件⾥,命令的集合。(影响性能)
3. mysql调优
a. explain select语句;
b. 当只要⼀条数据时使⽤limit 1;
c. 为搜索字段建索引;
d. 避免select *;
e. 字段尽量使⽤not null;
f. 垂直分割;
g. 拆分⼤的delete和insert语句:delete和insert会锁表;
h. 分表分库分区。
4. 有没了解Docker,Docker和虚拟机有什么区别?
1、虚拟机:我们传统的虚拟机需要模拟整台机器包括硬件,每台虚拟机都需要有⾃⼰的操作系统,虚拟机⼀旦被开启,预分配
给他的资源将全部被占⽤。,每⼀个虚拟机包括应⽤,必要的⼆进制和库,以及⼀个完整的⽤户操作系统。
2、Docker:容器技术是和我们的宿主机共享硬件资源及操作系统可以实现资源的动态分配。
容器包含应⽤和其所有的依赖包,但是与其他容器共享内核。容器在宿主机操作系统中,在⽤户空间以分离的进程运⾏。
3、对⽐:
1. docker启动快速属于秒级别。虚拟机通常需要⼏分钟去启动。
2. docker需要的资源更少,docker在操作系统级别进⾏虚拟化,docker容器和内核交互,⼏乎没有性能损耗,性能优于通过
Hypervisor层与内核层的虚拟化。;
3. docker更轻量,docker的架构可以共⽤⼀个内核与共享应⽤程序库,所占内存极⼩。同样的硬件环境,Docker运⾏的镜
像数远多于虚拟机数量。对系统的利⽤率⾮常⾼
4. 与虚拟机相⽐,docker隔离性更弱,docker属于进程之间的隔离,虚拟机可实现系统级别隔离;
5. 安全性: docker的安全性也更弱。Docker的租户root和宿主机root等同,⼀旦容器内的⽤户从普通⽤户权限提升为root
权限,它就直接具备了宿主机的root权限,进⽽可进⾏⽆限制的操作。虚拟机租户root权限和宿主机的root虚拟机权限是分离的,并且
虚拟机利⽤如Intel的VT-d和VT-x的ring-1硬件隔离技术,这种隔离技术可以防⽌虚拟机突破和彼此交互,⽽容器⾄今还没有任何形式
的硬件隔离,这使得容器容易受到攻击。
6. 可管理性:docker的集中化管理⼯具还不算成熟。各种虚拟化技术都有成熟的管理⼯具,例如VMware vCenter提供完备
的虚拟机管理能⼒。
7. ⾼可⽤和可恢复性:docker对业务的⾼可⽤⽀持是通过快速重新部署实现的。虚拟化具备负载均衡,⾼可⽤,容错,迁移
和数据保护等经过⽣产实践检验的成熟保障机制,VMware可承诺虚拟机99.999%⾼可⽤,保证业务连续性。
8. 快速创建、删除:虚拟化创建是分钟级别的,Docker容器创建是秒级别的,Docker的快速迭代性,决定了⽆论是开发、测
试、部署都可以节约⼤量时间。
9. 交付、部署:虚拟机可以通过镜像实现环境交付的⼀致性,但镜像分发⽆法体系化;Docker在Dockerfile中记录了容器构
建过程,可在集群中实现快速分发和快速部署;
5. 同⼀个宿主机中多个Docker容器之间如何通信?多个宿主机中Docker容器之间如何通信?
1、这⾥同主机不同容器之间通信主要使⽤Docker桥接(Bridge)模式。
2、不同主机的容器之间的通信可以借助于 pipework 这个⼯具。