mysql緩衝 (redis)

來源:互聯網
上載者:User

標籤:mysql 緩衝 redis

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
650) this.width=650;" src="https://s5.51cto.com/wyfs02/M00/8F/7E/wKiom1jhAmewMgJTAAGNH05U8Yk702.png-wh_500x0-wm_3-wmp_4-s_2939365003.png" title="1.png" alt="wKiom1jhAmewMgJTAAGNH05U8Yk702.png-wh_50" />
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
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M00/8F/7C/wKioL1jhAnDBSsowAAFTOzStBUk185.png-wh_500x0-wm_3-wmp_4-s_2109756329.png" title="2.png" alt="wKioL1jhAnDBSsowAAFTOzStBUk185.png-wh_50" />
netstat -antlpe | grep php
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/8F/7E/wKiom1jhAnmid3N9AACkR1TnbiI410.png-wh_500x0-wm_3-wmp_4-s_3281877631.png" title="3.png" alt="wKiom1jhAnmid3N9AACkR1TnbiI410.png-wh_50" />
cd /etc/nginx/conf.d
vim default.conf (nginx開啟php模組)
650) this.width=650;" src="https://s5.51cto.com/wyfs02/M02/8F/7E/wKiom1jhAoGRm-jEAADgCYoPUck705.png-wh_500x0-wm_3-wmp_4-s_317977047.png" title="4.png" alt="wKiom1jhAoGRm-jEAADgCYoPUck705.png-wh_50" />
nginx -t
nginx (開啟nginx)
netstat -antlpe | grep nginx

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/8F/7C/wKioL1jhAorgDtzwAAE5NirQk64571.png-wh_500x0-wm_3-wmp_4-s_3740378957.png" title="5.png" alt="wKioL1jhAorgDtzwAAE5NirQk64571.png-wh_50" />
cd /usr/share/nginx/html/
測試:nginx php是否安裝成功
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/8F/7C/wKioL1jhApfAYTE4AADwoPbrEmM207.png-wh_500x0-wm_3-wmp_4-s_1270623822.png" title="6.png" alt="wKioL1jhApfAYTE4AADwoPbrEmM207.png-wh_50" />
dd3:yum install mysql-server -y (版本太低 只適合測試用)
/etc/init.d/mysqld start

dd1:scp redis-3.2.5.tar.gz [email protected]:

dd2:
tar zxf redis-3.2.5.tar.gz
cd redis-3.2.5
make && make install
cd utils
./install_server.sh
netstat –antlpe

650) this.width=650;" src="https://s5.51cto.com/wyfs02/M02/8F/7E/wKiom1jhAqCDkunvAAETaHm5bjc916.png-wh_500x0-wm_3-wmp_4-s_3496257997.png" title="7.png" alt="wKiom1jhAqCDkunvAAETaHm5bjc916.png-wh_50" />
cd /etc/redis
vim 6379.conf (綁定監聽連接埠)
 /etc/init.d/redis_6379 restart
redis-cli
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/8F/7C/wKioL1jhAqrgTCKsAAEdIS-XAEg854.png-wh_500x0-wm_3-wmp_4-s_1464835780.png" title="8.png" alt="wKioL1jhAqrgTCKsAAEdIS-XAEg854.png-wh_50" />
dd1:(php 載入redis模組

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/8F/7E/wKiom1jhArqzhKtJAAFgrV_6ZuY446.png-wh_500x0-wm_3-wmp_4-s_515616862.png" title="9.png" alt="wKiom1jhArqzhKtJAAFgrV_6ZuY446.png-wh_50" />
yum install unzip -y
unzip phpredis-master.zip
yum install php-devel-5.3.3-38.el6.x86_64.rpm
cd phpredis-master
phpize (指定模組安裝路徑)

650) this.width=650;" src="https://s3.51cto.com/wyfs02/M00/8F/7E/wKiom1jhAsmwQDoiAAE2v7OLbmE234.png-wh_500x0-wm_3-wmp_4-s_3391510604.png" title="10.png" alt="wKiom1jhAsmwQDoiAAE2v7OLbmE234.png-wh_50" />
./configure
make && make install

vim /etc/php.ini (更改時區)
650) this.width=650;" src="https://s5.51cto.com/wyfs02/M00/8F/7C/wKioL1jhAtHwVMbEAAD8HCIHQCg935.png-wh_500x0-wm_3-wmp_4-s_2190195714.png" title="11.png" alt="wKioL1jhAtHwVMbEAAD8HCIHQCg935.png-wh_50" />
cd /etc/php.d
cp mysql.ini redis.ini
vim redis.ini

650) this.width=650;" src="https://s5.51cto.com/wyfs02/M01/8F/7E/wKiom1jhAtzxXJKgAABAgErk6ag915.png-wh_500x0-wm_3-wmp_4-s_3615754169.png" title="12.png" alt="wKiom1jhAtzxXJKgAABAgErk6ag915.png-wh_50" />
/etc/init.d/php-fpm reload
php -m | grep redis (查看載入模組是否成功)
650) this.width=650;" src="https://s5.51cto.com/wyfs02/M00/8F/7C/wKioL1jhAuWwsoyAAAE7w2vPlf0257.png-wh_500x0-wm_3-wmp_4-s_3031358144.png" title="13.png" alt="wKioL1jhAuWwsoyAAAE7w2vPlf0257.png-wh_50" />
cp test.php /usr/share/nginx/html/index.php(測試頁面)
vim /usr/share/nginx/html/index.php
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/8F/7E/wKiom1jhAvGQcXUAAAD7rjsrzU0359.png-wh_500x0-wm_3-wmp_4-s_173637743.png" title="14.png" alt="wKiom1jhAvGQcXUAAAD7rjsrzU0359.png-wh_50" />
scp test.sql 172.25.42.12:(redis) (資料庫內容)


dd3:
grant select on test.* to [email protected]‘172.25.42.%‘ identified by ‘westos‘

650) this.width=650;" src="https://s1.51cto.com/wyfs02/M01/8F/7C/wKioL1jhAvyRDOoHAAEUGwkYXbo301.png-wh_500x0-wm_3-wmp_4-s_732545259.png" title="15.png" alt="wKioL1jhAvyRDOoHAAEUGwkYXbo301.png-wh_50" />
select * from test

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/8F/7E/wKiom1jhAwTBZEYWAAC1jlGATdo092.png-wh_500x0-wm_3-wmp_4-s_1750932809.png" title="16.png" alt="wKiom1jhAwTBZEYWAAC1jlGATdo092.png-wh_50" />
測試:
頁面測試:第一次訪問的是資料庫 第二此訪問的是cache

650) this.width=650;" src="https://s5.51cto.com/wyfs02/M01/8F/7C/wKioL1jhAw3At3YdAABfsCVYpco223.png-wh_500x0-wm_3-wmp_4-s_2042010657.png" title="17.png" alt="wKioL1jhAw3At3YdAABfsCVYpco223.png-wh_50" />
缺陷:如果更新mysql資料庫的內容,cache不會察覺,裡面資料內容不會更改, 使用者訪問的時候,得到的還是緩衝裡面舊的內容,只能手動刪除cache裡面的舊的資料 才能重新更新
update test set name=‘westos‘where id =1

650) this.width=650;" src="https://s5.51cto.com/wyfs02/M02/8F/7E/wKiom1jhAxzSoY07AACtNPA3jDw840.png-wh_500x0-wm_3-wmp_4-s_1352197231.png" style="float:none;" title="18.png" alt="wKiom1jhAxzSoY07AACtNPA3jDw840.png-wh_50" />650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/8F/7C/wKioL1jhAxyzX_5HAABjf0dc36w670.png-wh_500x0-wm_3-wmp_4-s_1318228311.png" title="19.png" style="float:none;" alt="wKioL1jhAxyzX_5HAABjf0dc36w670.png-wh_50" />


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

650) this.width=650;" src="https://s3.51cto.com/wyfs02/M00/8F/7E/wKiom1jhAyrT5zKtAAFH-C1HcHw950.png-wh_500x0-wm_3-wmp_4-s_1669473470.png" title="20.png" alt="wKiom1jhAyrT5zKtAAFH-C1HcHw950.png-wh_50" />
cd /etc/redis/
vim 6379.conf (slaveof)

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/8F/7C/wKioL1jhAzSQ69pTAAFxtwlmet8828.png-wh_500x0-wm_3-wmp_4-s_2257619239.png" title="21.png" alt="wKioL1jhAzSQ69pTAAFxtwlmet8828.png-wh_50" />
/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)

650) this.width=650;" src="https://s1.51cto.com/wyfs02/M00/8F/7C/wKioL1jhA0CjqRc4AAFikmwaGJ0368.png-wh_500x0-wm_3-wmp_4-s_1264869591.png" title="22.png" alt="wKioL1jhA0CjqRc4AAFikmwaGJ0368.png-wh_50" />
/etc/init.d/redis_6379 restart

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/8F/7E/wKiom1jhA0zQ6HGlAAEPMAqDLEs809.png-wh_500x0-wm_3-wmp_4-s_1867540460.png" title="23.png" alt="wKiom1jhA0zQ6HGlAAEPMAqDLEs809.png-wh_50" />
cd redis-3.2.5
cp sentinel.conf  /etc/redis
vim sentinel.conf

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/8F/7C/wKioL1jhA12h7T1VAAFznNAHtZc584.png-wh_500x0-wm_3-wmp_4-s_3727346085.png" style="float:none;" title="24.png" alt="wKioL1jhA12h7T1VAAFznNAHtZc584.png-wh_50" />

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/8F/7E/wKiom1jhA16ipOzrAAEvc00HHWA332.png-wh_500x0-wm_3-wmp_4-s_3789851163.png" style="float:none;" title="25.png" alt="wKiom1jhA16ipOzrAAEvc00HHWA332.png-wh_50" />

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/8F/7C/wKioL1jhA32zDsg3AAFBHxUmwrQ955.png-wh_500x0-wm_3-wmp_4-s_1870564986.png" style="float:none;" title="26.png" alt="wKioL1jhA32zDsg3AAFBHxUmwrQ955.png-wh_50" />


scp sentinel.conf [email protected]:/etc/redis/
scp sentinel.conf [email protected]:/etc/redis/
redis-server /etc/redis/sentinel.conf --sentinel (三台都做) (會開啟一個新的監控連接埠)
查看:redis-cli -p 26379 (26379:監控每一個連接埠
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/8F/7C/wKioL1jhA56xg7rTAADruEHgQnU711.png-wh_500x0-wm_3-wmp_4-s_2796062956.png" title="27.png" alt="wKioL1jhA56xg7rTAADruEHgQnU711.png-wh_50" />
redis-cli
127.0.0.1:6379> monitor (master 每一秒都在給slave發包)
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/8F/7E/wKiom1jhA6qB5JBFAAGGwrt3vwo396.png-wh_500x0-wm_3-wmp_4-s_3280668141.png" title="28.png" alt="wKiom1jhA6qB5JBFAAGGwrt3vwo396.png-wh_50" />
 


mysql緩衝 (redis)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.