您好,登錄后才能下訂單哦!
Mysq需要注意的地方:
mysql主從復制 延遲來自于 sql線程(解決:myslq5.7 可設置成多線程并行)
數據庫監控:lepus
大型數據庫的刪除(安全快速的方法 一部分一部分刪除)(不推薦暴力的刪除 DELETE DROP 會造成主從不一致)
expire_log_days 0 (默認數據庫不會刪除)
set global expire_logs_days=7 (設置七天后刪除)
TiDB(分布式)
數據備份一定要在slave上做 以免加重master的負擔
數據庫緩存:redis(nosql的缺點:數據無法持久化因為工作在內存 而且內存容量有限 優點:速度快 但redis可以數據保持 工作在內存 數據會保存在磁盤)
讀寫分離:加代理(數據庫訪問層 proxy)
nosql數據庫可以直接連接一個redis (速度超快)
但是數據與數據之間是有關系的所以還得連接mysql:
client(KV) -->redis --(鉤子函數)>mysql
高并發mysql:(肯定要走讀寫分離)
client -->中間鍵(專門開發 做分發 確認客戶需求 因為LVS不懂這些 只做轉發)-->LVS(開發:等價路由 擴展多個LVS)-->nginx(多個一個LVS對應一個nginx)-->BD(cluster)
數據庫緩存:(redis)
三臺虛擬機:
dd1:(nginx php)
查看之前是否安裝過:
rpm -qa | grep php
rpm -qa | grep httpd
yum install -y nginx-1.8.0-1.el6.ngx.x86_64.rpm
rpm -ivh php-cli-5.3.3-38.el6.x86_64.rpm php-common-5.3.3-38.el6.x86_64.rpm
rpm -ivh php-mysql-5.3.3-38.el6.x86_64.rpmphp-pdo-5.3.3-38.el6.x86_64.rpm
yum install php-5.3.3-38.el6.x86_64.rpm
cd /etc/php-fpm.d
vim www.conf (更改用戶名用戶組 nginx)
/etc/init.d/php-fpm start
netstat -antlpe | grep php
cd /etc/nginx/conf.d
vim default.conf (nginx開啟php模塊)
nginx -t
nginx (開啟nginx)
netstat -antlpe | grep nginx
cd /usr/share/nginx/html/
測試:nginx php是否安裝成功
dd3:yum install mysql-server -y (版本太低 只適合測試用)
/etc/init.d/mysqld start
dd1:scp redis-3.2.5.tar.gz root@172.25.42.11:
dd2:
tar zxf redis-3.2.5.tar.gz
cd redis-3.2.5
make && make install
cd utils
./install_server.sh
netstat –antlpe
cd /etc/redis
vim 6379.conf (綁定監聽端口)
/etc/init.d/redis_6379 restart
redis-cli
dd1:(php 加載redis模塊)
yum install unzip -y
unzip phpredis-master.zip
yum install php-devel-5.3.3-38.el6.x86_64.rpm
cd phpredis-master
phpize (指定模塊安裝路徑)
./configure
make && make install
vim /etc/php.ini (更改時區)
cd /etc/php.d
cp mysql.ini redis.ini
vim redis.ini
/etc/init.d/php-fpm reload
php -m | grep redis (查看加載模塊是否成功)
cp test.php /usr/share/nginx/html/index.php(測試頁面)
vim /usr/share/nginx/html/index.php
scp test.sql 172.25.42.12:(redis) (數據庫內容)
dd3:
grant select on test.* to redis@'172.25.42.%' identified by 'westos'
select * from test
測試:
頁面測試:第一次訪問的是數據庫 第二此訪問的是cache
缺陷:如果更新mysql數據庫的內容,cache不會察覺,里面數據內容不會更改, 用戶訪問的時候,得到的還是緩存里面舊的內容,只能手動刪除cache里面的舊的數據 才能重新更新
update test set name='westos'where id =1
redis主從:(備份) redis是單進程的解決辦法:跑多個進程 將進程與cpu綁定
dd3:(不同服務不同端口 為了避免多開虛擬機 就在dd3上面做啦~)
tar zxf redis-3.2.5.tar.gz
cd redis-3.2.5
make && make install (yum install gcc -y)
cd utils/
./install_server.sh
cd /etc/redis/
vim 6379.conf (slaveof)
/etc/init.d/redis_6379 restart
測試:redis-cli
主從切換:(一主多從 一主雙從)
dd1:(不同服務不同端口 為了避免多開虛擬機 就在dd1上面做啦~)
tar zxf redis-3.2.5.tar.gz
cd redis-3.2.5
make && make install (yum install gcc -y)
cd utils/
./install_server.sh
cd /etc/redis/
vim 6379.conf (slaveof)
/etc/init.d/redis_6379 restart
cd redis-3.2.5
cp sentinel.conf /etc/redis
vim sentinel.conf
scp sentinel.conf root@172.25.42.12:/etc/redis/
scp sentinel.conf root@172.25.42.11:/etc/redis/
redis-server /etc/redis/sentinel.conf --sentinel (三臺都做) (會打開一個新的監控端口)
查看:redis-cli -p 26379 (26379:監控每一個端口
redis-cli
127.0.0.1:6379> monitor (master 每一秒都在給slave發包)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。