dsadfa
redis-cluster
1 并发问题
2 数据另太大
新浪微博 这么大的数据 ,去哪买内存条,
思想: 数据分片存储在多个redis中
集群: twitter 开源
codis 豌豆荚 开发c 和 go开发
不好的: 一台机器,超载了
正确的是 分布式,加机器,分摊集中式压力,一堆机器做一件事(计算机是跟生活中的东西非常相似的),分了马鞍,马背上
按key分片,实例化多个马
节点取余分类
虚拟槽分区(官方)
redis-cluster集群搭建
1 . 环境准备,6个redis数据库节点
也就是准备6个配置文件,6匹马
port 7000
daemonize yes
dir "/opt/redis/data/7000"
logfile "7000.log"
dbfilename "dump-7000.rdb"
cluster-enabled yes #开启集群模式
cluster-config-file nodes-7000.conf #集群内部的配置文件
cluster-require-full-coverage no #redis cluster需要16384个slot都正常的时候才能对外提供服务,换句话说,只要任何一个slot异常那么整个cluster不对外提供服务。 因此生产环境一般为no
肥的空格删掉,配置文件里
mkdir -p /op/redis/data/{7000,7001,7002,7003,7004,7005,}
sed 's/7000/7001/g' redis-7000.conf
port 7000
daemonize yes
dir "/opt/redis/data/7000"
logfile "7000.log"
dbfilename "dump-7000.rdb"
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-require-full-coverage no
./configure --profix=/opt/ruby231
make && make install
tar -xvf ruby-2.3.1.tar.gz
./configure --prefix=/opt/ruby/
make && make install
vim /etc/profile
(未来做啥是有公司决定的,除非一腔热血,非要干)
source /etc/profile
ruby 解释器
gem 类似于pip 包管理工具
opt/bin
cp /opt/ruby/bin/ruby /usr/local/
cp bin/gem /usr/local/bin
cd /opt/s20cluster-redis中
ls 发现有个gem报了
gem install -l redis-3.3.0.gem
6 .rb ruby语言的脚本后缀
重定向 一键分配redis集群的槽位
查找绝对路径
授权 1 代表每个主库,只有一个redis从库
redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
redis-cli -c -p 7000 -c 开启集群 c6700 算法放到哪个 自动的重定向到 7001 set name
redis-cli -c -p 7004 查看 info ref
5780 到了 7001
get age 到 有 age里的槽去看数据
干掉主,奴自己成主
再把奴主也干掉,数据去哪了
集群挂掉恢复的方案 :
9:48 二节课
哨兵监控三对节点
redis-cli -c info
redis-cli-p
1 主 多 从 1 2
docker
容器 技术 (不要求向运维一样)
why? what? how?
Aibee(16k) : 不忘初心
:做的最好的
vmare虚拟化内存俩个g, 数值是技术手段实现的假的
:也是通过虚拟化搭建的假的,轻量级的虚拟化
ali
jidong 15万个docker业务全部实例化
:开源 由go写的 ,所以 go为什么火 还有区块链
- python 之前16 shi openstack 现在ai tensflow
- 对linux的封装 ,
: 简单开发
之前部署 :
app <---> os <---> 物理
虚拟化 hypervisor appliaca(centos)
: 虚拟机是完整的操作系统 ,要分配系统资源,卡
一栋楼一户人家 一个楼房一户人家 胶囊房
物理机 虚拟机 容器
容器是吧这个进程命令,文件放到一个docker镜像中取运行相当于在python3 manage.py runserver 这个镜像上,批了一个马甲
环境配置
每台计算机的环境不同,如何换一台机器能运行起来呢?
把配置完整的复制过去 到另一个
管理 - 克隆
笑话 : 开发和测试 开发和运维(环境问题)
解决方案二 linux容器
自从用上docker容器后,可以实现开发、测试和生产环境的统一化和标准化
iso 刻录 ,用此安装好,所有的是一样的
三个生命周期
镜像image # 相当于类,老板的光盘
容器container
仓库repository #存放镜像文件的,公共的仓库 dockerhub.com github.com
docker整个生命周期就是这三个概念
基于老板卖的dvd光盘,安装操作系统
基于镜像,运行容器实例
镜像 理解为python的class
容器 理解为python的类的实例化
容器也是可以自定义更改,在生成新的 镜像文件的
class foo():
def __init__(self):
self.name ='他大舅。。。'
f1 = foo()
面试(太白,大金链子)
敲门的礼仪,技术水平,都要,合作伙伴,
技术好,人又谦虚,不太狂(也不要,相处共事因为)
阿里源 可能版本低
性格:
不走进去,出不来,出错随时(以前的缺点弱点),但是不要沉溺堕落。知来者只可追、
yum 源,网速太慢,公司有vpn,可以使用
安装方式
1
2 选择阿里
yum install docker -y
3 docker version
4 docker pull centos
5 docker images 查看镜像
docker pull
选择 + 简答 + 部署
- 学习管理容器,镜像,仓库的增删改查
1 获取镜像
2 运行镜像,生成容器
3 容器的运行管理
4 容器无用后,就删除容器即可
5 镜像用容器进行统一管理
docker search centos 去docker
7 docker run 运行 docker实例
docker ps 查看正在 运行的容器进程
docker ps -a 显示所有 运行的包括挂掉的
docker pull hello-world 获得小的镜像
docker images
docker rmi 镜像名 #删除本地docker镜像
docker run fce # 只写前三位就知道
容器管理的重要点!!!
容器管理的重要点!!!
容器管理的重要点!!!
docker容器必须有进程在后台运行,否则容器挂掉!!!
run 三次 出现三次容器新的记录
运行一个交互式的ubuntu容器实例
docker run -it ubuntu /bin/bash #参数解释 -i
cat /etc/os-release # 查看版本
uname 查看
exit
进程id 去images 看
docker rm 容器id 删除容器id记录,只能删除挂掉的容器
docker rm 容器id -f 强删
docker ps -a # 看记录
docker ps -aq # 看id
docker rm 'docker ps -aq' # 看id
(容器非常容易创建和销毁,出现大量的记录)
容器数量特别大的时候 k8s
进入容器空间内
docker exec -it f93(运行着的容器id) /bin/bash
查看容器日志
docker logs f93
docker logs -f # -f flash 刷新的意思
docker exec -it 10b /
容器的端口映射
docker port
容器的启停管理
docker start id
docker stop id
dockfile 的学习就是定制docker一个脚本,学习里面参数
获取docker镜像的方式
1 docker pull
2 获取别人发来的自定义镜像文件 load< /////vim
3 通过dockerfile 来定义镜像(手动yum make 安装)
1 指定以哪个系统为基础
FROM scratch
FROM centos
2 LABEL
3 RUN yum install&&yum install -y vim \
RUN mkdir docker 真好
RUN cd / #打印了斜杠
4 WORKDIR demo 进入了demo文件夹
5 ADD 本地的资料 容器内的存放路径
# ADD hello.txt / # 把本地文件添加到镜像中,
ADD 把本地文件添加到镜像中
6 COPY 本地的文件copy到容器空间,没有解压作用
7 ENV 环境变量,增加可维护性
通过dockerfile 定制flask(python繁琐),web程序,运行出容器
配置方法:
1 准备flask代码文件
touch s20 flask.py
vim ....
2 编写dockerfile,内容如下
touch Dockerfile
(自带python2 不带python3 不对vim 有vi)
easy_install flask (python2 安装的)(学习肯定辛苦,不学这个技术,怎么拿这些钱)(互联网时代好,赶上了好时代,所以,就这样,如果1万)(说老师讲的好,无反应,一方面是成熟,一方面是谦虚,成熟更多)
easy_install -i https://pypi.douban.com
代码让容器执行它
容器里没有python
指定阿里源, 安装yum源,
copy 把本地的copy到容器里
暴露8080(根据flask)
cmd ['python','s20flask.py'] 执行
4 构建
docker build .
加分项 : 两个仓库