Redis PHP連接Redis

Redis是一款高性能分佈式內存數據庫,支持數據持久化(可以把內存裏的數據保存到硬盤中),支持list、hash、set、zset數據類型,支持master-salve模式(主從)。

部署redis服務

1、下載redis源碼包,源碼編譯安裝

    tar zxf redis-4.0.8.tar.gz

    cd redis-4.0.8

    make

    make install

2、初始化配置(redis服務端口號,主配置文件,數據庫目錄,pid文件,啓動程序)

    ./utils/install_server.sh    #初始化

3、啓動,停止服務(/etc/init.d/redis_6379 此文件是安裝redis後自帶腳本,用它可以啓動停止服務,也可查看服務狀態)

    /etc/init.d/redis_6379  start

    /etc/init.d/redis_6379  stop

    /etc/init.d/redis_6379  status

redis服務的啓動和停止都是通過腳本來執行的,當修改了配置文件裏面的 地址 端口 密碼 則在/etc/init.d/redis_6379 腳本中需要修改這些參數,因爲這個腳本也是使用redis的默認參數來啓動或則停止的。


redis基本命令


redis-cli                 #連接redis服務

備註:redis-cli 不寫任何參數默認使用本地環回口地址127.0.0.1和默認端口6379連接,如果修改了配置文件裏的監聽地址和端口則需要跟相應的參數來連接redis服務。比如我們修改redis可以允許其它用戶可以使用6352端口遠程登陸,則修改配置文件裏的 bind 192.168.4.52  和 port 6352  ,使用 redis-cli -h 192.168.4.52  -p 6352 來登陸,如使用了密碼則需加 -a選項 後面跟密碼登陸。

ping                      #測試連接是否成功(返回pong說明成功)

set  name  lisi        #存儲name爲lisi

get  name             #獲取name的值

select  2                #切換到2庫(redis默認有16個庫 0~15)

keys  *                  #打印所有變量

keys  a?                #打印指定表量(?代表一個字符)

EXISTS  name       #測試name是否存在(存在顯示1,不存在顯示0)

ttl  name              #查看name的生存時間(就是有效期是多久)

type  name           #查看name的類型

move  name  2     #把name移動到2庫裏

expire  name 10   #設置name的有效時間爲10秒

del  name            #刪除name變量

flushall                #刪除所有變量

save                    #保存內存的數據到硬盤

shutdown           #關閉redis服務


配置文件解析

/etc/redis/6379.conf


prot  6379        #監聽端口

bind  127.0.0.1  #監聽ip地址,如果需要遠程登陸需要改成本地網卡的ip地址,不能使用本地迴環地址;如有多個地址用空格隔開

tcp-backlog  511 #redis允許tcp連接的總數(已建立連接的個數+正在連接的個數)

timeout  0   #連接超時時間(0爲永不不超時,timeout  30 代表30秒就端開)

tcp-keepalive  300  #長連接時間(每隔300秒檢查一次連接是否還在)

daemonize  yes  #守護進程方式運行(就是一直在內存裏運行,no是當連接的時候纔會在內存裏運行)

databases  16 #數據庫個數

logfile  /var/log/redis_6379.log  #pid文件

maxclients  10000 #redis服務能夠處理併發連接數

dir /var/lib/redis/6379  #數據庫目錄(redis數據文件保存在此目錄下,名字爲dump.rdb)

requirepass  123456  #設置連接redis服務的密碼(默認不設置,因爲redis是用內存存儲數據,它是架設在linux上,此服務是通過防火牆來控制的,它不負責安全)


內存清除策略

– volatile-lru 最近最少使用 (針對設置了過期時間的 key )

– allkeys-lru 刪除最少使用的 key

– volatile-random 在設置了過期的 key 裏隨機移除

– allkeys-random 隨機移除 key

– volatile-ttl (minor TTL) 移除最近過期的 key

– noeviction 不刪除 寫滿時報錯


選項默認設置

– maxmemory <bytes> // 最大內存(默認單位是bytes)

– maxmemory-policy [noeviction] // 定義使用的策略 [ ] 裏的策略可修改

– maxmemory-samples 5 // 選取模板數據的個數(針對 lru 和 ttl 策略) 數字越大選的越精準,對cpu消耗就大


部署LNMP+Redis

1、搭建LNMP

    a、源碼編譯nginx

    b、並配置nginx支持動態頁面 

        location ~ \.php$ {

        root    html;

        fastcgi_pass 127.0.0.1:9000;

        fastcgi_index index.php;

        fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;   #SCRIPT_FILENAME 這裏面是存客戶端訪問的php文件名叫什麼, $document_root 告訴php要解釋那個網頁文件,獲取客戶端訪問的頁面

        include    fastcgi_params;

        }

    c、安裝mysql

    d、安裝php-fpm

2、部署PHP支持Redis

    a、安裝redis服務

    b、默認php是不能連接redis,需要安裝支持php連接redis模塊的包php-redis

        先安裝php-devel軟件包會有/usr/bin/phpize這個命令,然後執行/usr/bin/phpize會在/usr/bin/下生成php-config配置文件,因爲後面配置php-redis需要獲取php的配置信息也就是這個配置文件         

        php-redis是源碼包,需源碼編譯安裝

        tar -zxf php-redis-2.2.4.tar.gz

          cd php-redis-2.2.4/

          ./configure --with-php-config=/usr/bin/php-config   #配置支持php-config的配置

          make

          make install

        安裝完成之後會輸出模塊安裝路徑信息,我們修改php配置文件時需要寫此路徑,告訴它在此路徑下找我們安裝的模塊。

    c、測試配置

        php -m  #產看php支持的模塊

        修改php配置文件

        vim /etc/php/ini

        extension_dir = "/usr/bin/php-config"   #到那個路徑下找模塊

        extension = "redis.so"  #模塊名叫什麼

        重啓php-fpm服務測試


php連接redis服務php腳本頁面

<?php

$redis = new redis();  #生成redis類的對象,生成之後可以用這個類裏面的方法

$redis->connect('127.0.0.1',6379);  #連接redis的ip地址端口號

$redis->set('redistest','666666');  #給redistest賦值爲666666

echo $redis->get('redistest'); #獲取redistest的值

?>






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章