1. 程式人生 > >Windows下Redis作為Mysql的快取伺服器-讀寫分離

Windows下Redis作為Mysql的快取伺服器-讀寫分離

1.安裝mysql(這個不多說)

create database mytestr;
use mytestr
create table `testr` (`id` int(7) NOT NULL AUTO_INCREMENT, `name` char(8) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
INSERT INTO `testr` VALUES (1,'sven'),(2,'jim'),(3,'zhu'),(4,'wang'),(5,'ftd'),(6
,'test'),(7,'test01'),(8,'test02'),(9,'test03');

檢視結果:

select * from mytestr.testr;

給mysql授權:

grant all privileges on *.* to [email protected] identified by '123456';
flush privileges;

2.安裝nginx

介質:http://nginx.org/
nginx安裝在:E:\Programs\nginx
配置nginx:
備份nginx\conf目錄下的nginx.conf
修改配置檔案(不相關的就被我刪掉了)

    server {
        listen       80;
        server_name  localhost;
        location / {
            root   E:/Programs/nginx/html;
            ##這裡的路徑的“/”要反過來,和linux下的一樣
            index  index.php index.html index.htm;
            ##新增index.php
        }
        error_page   500 502 503 504  /50x.html;
        location = /50
x.html { root html; } location ~ \.php$ { # root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME E:/Programs/nginx/html$fastcgi_script_name; ##修改路徑,注意斜槓的方向 include fastcgi_params; } }

修改後,啟動nginx.exe
檢視狀態:
這裡寫圖片描述
log也沒報錯(log目錄:E:\Programs\nginx\logs)
測試:
在E:\Programs\nginx\html下新建index.php檔案

<?php
    phpinfo();
?>

3.安裝Redis

4.安裝PHP5.4和Redis擴充套件

介質:http://windows.php.net/download#php-5.6注意,一定要下載Non Thread Safe版本
這裡寫圖片描述
解壓到E:\Programs\php-5.4.45-x86 (檔案重新命名,原名太長)
備份php.ini-production,然後將其重新命名為php.ini
修改配置檔案:
這裡寫圖片描述
將上圖紅框內內容去掉“;”並改為
extension_dir = “E:/Programs/php-5.4.45-x86/ext” –注意斜槓方向
以下專案在配置檔案中去掉前面的“;”
extension=php_mysql.dll
extension=php_mysqli.dll
cgi.fix_pathinfo=1
新增:(先後順序別反
extension=php_igbinary.dll
extension=php_redis.dll
然後下載redis的php5.4擴充套件檔案:https://github.com/phpredis/phpredis/downloads –(phpredis_5.4_vc9_nts.7z,必須nts版本)
解壓後放到:E:\Programs\php-5.4.45-x86\ext
啟動PHP5.4:命令列CD到php-5.4.45-x86,執行php-cgi.exe -b 127.0.0.1:9000 -c E:/Programs/php-5.4.45-x86/php.ini
這裡寫圖片描述 無報錯
測試:修改E:\Programs\nginx\html下index.php 如下內容

<?php
    $redis = new Redis();
    $redis->connect('127.0.0.1',6379);
    $redis->set('test','hello redis');
    echo $redis->get('test');
?>

5.快取測試

    修改php檔案(PHP檔案程式碼可以自由改動):
        <?php
        $redis = new Redis();
        $redis->connect('127.0.0.1',6379) or die ("could net connect redis server");
        $query = "select * from testr";
        //為了簡單一點,這裡就讀取了8條資料
        for ($key = 1; $key < 9; $key++)
        {
                if (!$redis->get($key))
                {
                        $connect = mysql_connect('127.0.0.1','root','123456');
                        mysql_select_db(mytestr);
                        $result = mysql_query($query);
                        //如果沒有找到$key,就將該查詢sql的結果快取到redis
                        while ($row = mysql_fetch_assoc($result))
                        {
                                $redis->set($row['id'],$row['name']);
                        }
                        $myserver = 'mysql';
                        break;
                }
                else
                {
                        $myserver = "redis";
                        $data[$key] = $redis->get($key);
                }
        }

        echo $myserver;
        echo "<br>";
        for ($key = 1; $key < 9; $key++)
        {
                echo "number is <b><font color=#FF0000>$key</font></b>";

                echo "<br>";

                echo "name is <b><font color=#FF0000>$data[$key]</font></b>";

                echo "<br>";
        }
?>

在瀏覽器中輸入:http://localhost/index.php
第一次執行,redis中沒有對應的KEY
第二次執行:
這裡寫圖片描述
登入redis端也可以去驗證下
至此,已經實現了redis作為mysql的快取伺服器,但是如果更新了mysql,redis中仍然會有對應的KEY,資料就不會更新,需要注意!

原創作品,允許轉載,轉載時請務必以超連結形式標明文章 原始出處 、作者資訊和本宣告。否則將追究法律責任

相關推薦

WindowsRedis作為Mysql快取伺服器-分離

1.安裝mysql(這個不多說) create database mytestr; use mytestr create table `testr` (`id` int(7) NOT NU

RedisMysql快取伺服器

Redis作Mysql快取伺服器原理: php預設從redis索取快取資料,只有redis過期或刪除,php才會從資料庫索求資料。 環境配置: server1:php代理 server2:redis快取 server3:mysql資料庫 實驗部署: 1、

Windowsnginx作為靜態資源伺服器使用

一、Nginx下載與安裝 1、nginx官方下載地址:http://nginx.org/ 2、下載完後將壓縮包解壓即可 3、nginx配置檔案為根目錄下conf\nginx.conf 二、Nginx常用命令說明 cmd進入nginx安裝目錄 tasklist /fi "imagename e

Windowsredis作為後臺服務啟動

1.安裝服務 redis-server –service-install redis.windows.conf –loglevel verbose 2.解除安裝服務 redis-server –service-uninstall 3.啟動服務 redis-server –ser

Windowsnginx作為靜態資源伺服器使用小結

起因            最近在公司接個任務,說用nginx做靜態資源伺服器,給客戶端寫個更新程式,把更新包放nginx伺服器上。當然nginx作為一款輕量級的web伺服器/反向代理伺服器/郵件伺服器,對於這簡單的任務毛毛雨啦,在此總結一下nginx的使用,以備遺忘時翻看。

Windowsnginx作為靜態資源伺服器測試

1、修改nginx配置,新增以下配置   #url http://localhost/image/file/22.jpg 對應檔案 E:/image/image/file/22.jpg #url http://localhost/image/33.jpg 對應檔案 E:/

windows配置mycat,實現mysql資料庫的分離

下載Windows的安裝包 配置環境變數: 修改配置檔案 wrapper.conf Server.xml <?xmlversion=

11、Spring技術棧-整合Redis,通過Redis的Master-Slave實現快取資料分離

1、Redis主從複製(Master-Salve Replication)簡介 Redis 支援簡單且易用的主從複製(master-slave replication)功能, 該功能可以讓從伺服器(slave server)成為主伺服器(master serv

mysql+mysql_proxy實現分離

mysql-_proxymysql讀寫分離需要基於主從架構實現 mysql主從配置:http://hongchen99.blog.51cto.com/12534281/1917137 mysql-proxy:用於實現mysql主從分離,基於主從架構讀寫分離存在的最大問題就是主從同步延遲 安裝my

docker-compose.yml樣例(mysql主從+mycat分離

mysqld 系統 環境變量 服務端 nbsp dock 自定義 host expose Docker-compose.yml文件示例 1、mysql主從復制的docker-compose.yml文件 # cat docker-compose.yml version: ‘2

mysql主從及分離

主從與讀寫分離 主從同步1 主配置把237配置為主數據庫服務器 授權用戶從42數據庫服務器連接自己的時候有拷貝數據的權限grant replication slave on *.* to [email protected]"172.40.7.42" identified

MYSQL生產場景分離

mysql 生產場景 讀寫分離 MYSQL生產場景讀寫分離 M --------à S單向同步為保持數據一致性,只能在M上寫入數據方法:1、從庫,連接用戶授權上控制2、Web程序寫指向主,讀指向從3、讓從庫只能讀不能寫(read-only) 生產授權方案1:主庫:grant select,dele

mysql 主從同步-分離

mat mariadb tar 從庫 log sta ble form lock 一、 實驗環境 Master centos 7.3 192.168.138.13 Slave

MySQL主從(MySQL proxy Lua分離設置,一主多從同步配置,分庫分表方案)

否則 count user username 2個 ons 基礎 zxvf 路徑 Mysql Proxy Lua讀寫分離設置一.讀寫分離說明讀寫分離(Read/Write Splitting),基本的原理是讓主數據庫處理事務性增、改、刪操作(INSERT、UPDATE、DE

使用amoeba配置mysql主從同步分離

mysql主從同步 mysql讀寫分離 amoeba搭建 使用amoeba配置mysql主從同步讀寫分離 實驗環境:需要三臺手工編譯安裝的mysql,一臺主,兩臺從主: 192.168.88.100從1: 192.168.88.10

MySQL高可用分離集群視頻課程 MyCat教程

MySQL 課程大綱:第1節MySQL源碼編譯安裝(CentOS-6.6+MySQL-5.6)38分鐘第2節MySQL主從復制的配置(CentOS-6.6+MySQL-5.6)58分鐘第3節MyCat在MySQL主從復制基礎上實現讀寫分離-0130分鐘第4節MyCat在MySQL主從復制基礎上實現讀寫分離-0

MySQL主從同步+分離

Mysql主從同步+讀寫分離 學習 分享 數據庫主從同步+讀寫分離 MySQL主從同步+讀寫分離 實驗拓撲:三臺mysql數據庫:192.168.80.101 主服務器 mysql192.168.80.102 從1服務器 mysql

window使用MyCat實現簡單的分離

穩定版 情況 pri efault utf utf8 strong handler ear 參考文檔 MyCat權威指南 MyCat項目主頁 學會數據庫讀寫分離、分表分庫——用Mycat,這一篇就夠了! MyCat安裝 Java SDK下載(必須JDK7或更高版本) MYS

MMM架構實現MySQL高可用分離(進階版,包含Amoeba)

meid _id status mysqld 服務無法啟動 flush 忽略 kit pri 前兩天逛博客偶然發現了某大神寫的關於MMM的文章,看完就迫不及待的自己試了一下,大神寫的很順暢,以為自己也能操作的很順暢,但是實際情況是手腳太不麻利,碰到很多坑,如果大神的

mysql+mycat實現分離

-- sys prop lse 版本 text oss 機制 mys centos7 master slave mycat1.6 client 192.168.41.10 192.168.41.11 192.168.41.12 192.168.41.13