当前位置: 首页 > news >正文

php大型网站开发襄阳市作风建设年 网站

php大型网站开发,襄阳市作风建设年 网站,网站设计包括什么,做58网站每天可以发几条基于Docker实现读写分离 1 redis集群扩容缩容 1.1 集群扩容 1.2 集群缩容 2 缓存优化 2.1 缓存更新策略 2.2 穿透#xff0c;击穿#xff0c;雪崩 3 mysql主从搭建 4 django实现读写分离 1 redis集群扩容缩容 1.1 集群扩容 # 6台机器#xff0c;3个节点集群# 8台机器击穿雪崩 3 mysql主从搭建 4 django实现读写分离 1 redis集群扩容缩容 1.1 集群扩容 # 6台机器3个节点集群# 8台机器4个节点集群 #1 准备两台机器sed s/7000/7006/g redis-7000.conf redis-7006.conf sed s/7000/7007/g redis-7000.conf redis-7007.conf #2 启动两台机器 ./src/redis-server ./redis-7006.conf ./src/redis-server ./redis-7007.confcluster nodes cluster info# 3 两台机器加入到集群中去 ./src/redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000 ./src/redis-cli --cluster add-node 127.0.0.1:7007 127.0.0.1:7000# 4 让7007复制7006 ./src/redis-cli -p 7007 cluster replicate e592233d38520ebd125de849ea69da3fe9482ac1# 5 迁移槽 ./src/redis-cli --cluster reshard 127.0.0.1:7000 -迁移4096个槽-7006的机器接收槽-all1.2 集群缩容 # 第一步下线迁槽把7006的1366个槽迁移到7000上 redis-cli --cluster reshard --cluster-from baf261f2e6cb2b0359d25420b3ddc3d1b8d3bb5a --cluster-to 050bfd3608514d4db5d2ce5411ef5989bbe50867 --cluster-slots 1365 127.0.0.1:7000 yes# 1366 迁移给7001 redis-cli --cluster reshard --cluster-from baf261f2e6cb2b0359d25420b3ddc3d1b8d3bb5a --cluster-to 9cb2a9b8c2e7b63347a9787896803c0954e65b40 --cluster-slots 1366 127.0.0.1:7001 yes# # 1366 迁移给7002 redis-cli --cluster reshard --cluster-from baf261f2e6cb2b0359d25420b3ddc3d1b8d3bb5a --cluster-to d3aea3d0b4cf90f58252cf3bcd89530943f52d36 --cluster-slots 1366 127.0.0.1:7002 yes#第二步下线节点 忘记节点关闭节点 ./src/redis-cli --cluster del-node 127.0.0.1:7000 9c2abbfaa4d1fb94b74df04ce2b481512e6edbf3 # 先下从再下主因为先下主会触发故障转移 ./src/redis-cli --cluster del-node 127.0.0.1:7000 baf261f2e6cb2b0359d25420b3ddc3d1b8d3bb5a# 第三步关掉其中一个主另一个从立马变成主顶上 重启停止的主发现变成了从2 缓存优化 2.1 缓存更新策略 # redis数据放在内存中输入如果满了再放数据---》肯定能放进去-老数据怎么样# 方案 LRU -Least Recently Used,没有被使用时间最长的LFU -Least Frequenty User,一定时间段内使用次数最少的FIFO -First In First Out 先进先出最早放的线删除2.2 穿透击穿雪崩 ### 缓存穿透 #描述 缓存穿透是指缓存和数据库中都没有的数据而用户不断发起请求如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者攻击会导致数据库压力过大。 #解决方案 1 接口层增加校验如用户鉴权校验id做基础校验id0的直接拦截 2 从缓存取不到的数据在数据库中也没有取到这时也可以将key-value对写为key-null缓存有效时间可以设置短点如30秒设置太长会导致正常情况也没法使用。这样可以防止攻击用户反复用同一个id暴力攻击 3 通过布隆过滤器实现### 缓存击穿 #描述 缓存击穿是指缓存中没有但数据库中有的数据一般是缓存时间到期这时由于并发用户特别多同时读缓存没读到数据又同时去数据库去取数据引起数据库压力瞬间增大造成过大压力 #解决方案 设置热点数据永远不过期。### 缓存雪崩 #描述 缓存雪崩是指缓存中数据大批量到过期时间而查询数据量巨大引起数据库压力过大甚至down机。和缓存击穿不同的是 缓存击穿指并发查同一条数据缓存雪崩是不同数据都过期了很多数据都查不到从而查数据库。 # 解决方案 1 缓存数据的过期时间设置随机防止同一时间大量数据过期现象发生。 2 如果缓存数据库是分布式部署将热点数据均匀分布在不同搞得缓存数据库中。 3 设置热点数据永远不过期。3 mysql主从搭建 # 之前做过redis的主从很简单 # mysql 稍微复杂一些 搭建mysql主从的目的是-读写分离-单个实例并发量低提高并发量-只在主库写读数据都去从库----》读多写少# mysql 主从原理 步骤一主库db的更新事件(update、insert、delete)被写到binlog(二进制日志) 步骤二从库发起连接连接到主库 步骤三此时主库创建一个binlog dump thread线程把binlog的内容发送到从库 步骤四从库启动之后创建一个I/O线程读取主库传过来的binlog内容并写入到relay log(中继日志). 步骤五还会创建一个SQL线程从relay log里面读取内容从Exec_Master_Log_Pos位置开始执行读取到的更新事件将更新内容写入到slave的db.# 搭建步骤 准备两台机器 mysql的docker镜像模拟两台机器-主库8.130.125.9 33307-从库8.130.125.9 33306# 第一步拉取mysql5.7的镜像# 第二步创建文件夹,文件目录映射mkdir /home/mysqlmkdir /home/mysql/conf.dmkdir /home/mysql/data/touch /home/mysql/my.cnfmkdir /home/mysql1mkdir /home/mysql1/conf.dmkdir /home/mysql1/data/touch /home/mysql1/my.cnf# 第三步重要编写mysql配置文件(主从)#### 主的配置#### [mysqld] usermysql character-set-serverutf8 default_authentication_pluginmysql_native_password secure_file_priv/var/lib/mysql expire_logs_days7 sql_modeSTRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION max_connections1000server-id100 log-binmysql-bin[client] default-character-setutf8[mysql] default-character-setutf8#### 从库的配置##### [mysqld] usermysql character-set-serverutf8 default_authentication_pluginmysql_native_password secure_file_priv/var/lib/mysql expire_logs_days7 sql_modeSTRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION max_connections1000server-id101 log-binmysql-slave-bin relay_logedu-mysql-relay-bin [client] default-character-setutf8[mysql] default-character-setutf8#第三步启动mysql容器并做端口和目录映射 docker run -di -v /home/mysql/data/:/var/lib/mysql -v /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/my.cnf:/etc/mysql/my.cnf -p 33307:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD123456 mysql:5.7docker run -di -v /home/mysql1/data/:/var/lib/mysql -v /home/mysql1/conf.d:/etc/mysql/conf.d -v /home/mysql1/my.cnf:/etc/mysql/my.cnf -p 33306:3306 --name mysql-slave -e MYSQL_ROOT_PASSWORD123456 mysql:5.7#第四步连接主库mysql -uroot -P33307 -h 10.0.0.102 -p#在主库创建用户并授权##创建test用户create user test% identified by 123;##授权用户grant all privileges on *.* to test% ;###刷新权限flush privileges;#查看主服务器状态(显示如下图)show master status; # 第五步连接从库mysql -uroot -P33306 -h 10.0.0.102 -p#配置详解change master to master_hostMySQL主服务器IP地址, master_user之前在MySQL主服务器上面创建的用户名 master_password之前创建的密码, master_log_fileMySQL主服务器状态中的二进制文件名, master_log_posMySQL主服务器状态中的position值;change master to master_host8.130.125.9,master_port33307,master_usertest,master_password123,master_log_filemysql-bin.000003,master_log_pos0;#启用从库start slave;#查看从库状态如下图show slave status\G;# 第六版在主库创建库创建表插入数据看从库4 django实现读写分离 # 第一步配置文件配置多数据库 DATABASES {default: {ENGINE: django.db.backends.sqlite3,NAME: BASE_DIR / db.sqlite3,},db1: {ENGINE: django.db.backends.sqlite3,NAME: BASE_DIR / db1.sqlite3,} }# 第二步手动读写分离 Book.objects.using(db1).create(name西游记)# 第三步自动读写分离 写一个py文件db_router.py写一个类 class DBRouter(object):def db_for_read(self, model, **hints):# 多个从库 [db1,db2,db3]return db1def db_for_write(self, model, **hints):return default# 第三步配置文件配置 DATABASE_ROUTERS [mysql_master_demo.db_router.DBRouter, ]# 以后自动读写分离 # 多从库负载 # 分库分表
http://www.zqtcl.cn/news/413630/

相关文章:

  • 厦门网站建设策划网站推广的常用方法有哪些
  • 做电脑图标的网站上海定制网站建设公司哪家好
  • 重庆seo网站推广工具济南网页设计师招聘信息
  • 甘肃永靖建设住建局网站深圳网络广告推广公司
  • 台州企业网站搭建电话厦门学网站建设
  • 做易经网站做网站布为网
  • 高端定制开发网站可以做网站的网络
  • 局政务网站建设管理工作总结wordpress ks主题
  • 网站集约化建设的意义网页制作成app
  • 建设银行大厂支行网站专业的营销型网站建设公司
  • 询盘网站苏州建设银行招聘网站
  • 制作网站图片手机网站跳转
  • 装修公司营销网站模板东莞家居网站建设
  • 网站模板建站教程视频德州极速网站建设百家号
  • 专做蔬菜水果的网站自学it从哪里学起
  • 邵阳红网站搭建平台聚合力
  • 滁州网站建设信息推荐软件开发技术方案模板
  • 商务网站建设有哪几个步骤拼多多网页qq登录
  • 厦门商城网站开发宜昌小程序开发公司
  • 东莞沙田网站建设榆林网站建设价格
  • 无锡网站制作建设wordpress写文章模板
  • 企业网站销售提升学历要多少钱
  • 打开建设银行官方网站首页wordpress 站库分离
  • 电子商务网站建设的试卷设计之家app
  • 抚养网站建设黔东南小程序开发公司
  • 网站建设相关行业有哪些wordpress 内容管理系统
  • 网站 备案地温州网站优化排名推广
  • 做网站的工作量国内 wordpress
  • 定制网站开发是什么大业推广网站
  • 网站建设每年需要交多少钱天津制作网站公司