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. 学习管理容器,镜像,仓库的增删改查

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 .

加分项 : 两个仓库

posted @ 2019-07-05 13:13  learnacode  阅读(284)  评论(0编辑  收藏  举报