Redis 之 (3) 慢查詢日誌、存儲session、主從配置、php安裝redis擴展

16. redis慢查詢日誌

針對慢查詢日誌能夠設置兩個參數,一個是執行時長,單位是微妙,另外一個是慢查詢日誌的長度。當一個新的命令被寫入日誌時,最老的一條會從命令日誌隊列被移除。php

[root@yt-01 ~]# vim /etc/redis.conf
slowlog-log-slower-than 10000
#單位:微秒
slowlog-max-len 128
#定義日誌長度,表示最多存128條


列出全部慢查詢日誌:
[root@yt-01 ~]# redis-cli
127.0.0.1:6379> slowlog get
(empty list or set)
列出兩條慢查詢日誌:
127.0.0.1:6379> slowlog get 2
(empty list or set)
查看慢查詢日誌條數:
127.0.0.1:6379> slowlog len
(integer) 0

17. php安裝redis擴展,redis存儲php的session

PHP和Redis經過模塊相結合,使用前先查看PHP是否有Redis模塊,若是沒有,按以下方式安裝並配置。mysql

1 安裝php-redis擴展模塊

[root@yt-01 src]# wget https://coding.net/u/aminglinux/p/yuanke_centos7/git/raw/master/21NOSQL/phpredis.zip
[root@yt-01 src]# unzip phpredis.zip
[root@yt-01 src]# cd phpredis-develop/
[root@yt-01 phpredis-develop]# /usr/local/php/bin/phpize
[root@yt-01 phpredis-develop]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@yt-01 phpredis-develop]# make && make install
增長以下配置:
[root@yt-01 phpredis-develop]# vim /usr/local/php/etc/php.ini
extension=redis.so
[root@yt-01 phpredis-develop]# /usr/local/php/bin/php -m
redis

2 Redis和PHP鏈接

方法1:編輯php.ini
[root@yt-01 www]# vim /usr/local/php/etc/php.ini
session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"
方法2:編輯pool文件:
[root@yt-01 ~]# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf
php_value[session.save_handler] = redis
php_value[session.save_path] = "tcp://127.0.0.1:6379"

3 測試

[root@yt-01 www]# pwd
/data/wwwroot/111.com
[root@yt-01 www]# ls
index.php
#1.php爲測試文件
[root@yt-01 www]# vim 1.php
<?php
session_start();
if (!isset($_SESSION['TEST'])) {
$_SESSION['TEST'] = time();
}
$_SESSION['TEST3'] = time();
print $_SESSION['TEST'];
print "<br><br>";
print $_SESSION['TEST3'];
print "<br><br>";
print session_id();
?>
[root@yt-01 www]# curl localhost/1.php
1523162689<br><br>1523162689<br><br>0fp6g1hi1q6ktdoogfplvlpo91
[root@yt-01 www]# redis-cli
127.0.0.1:6379> keys *
10) "PHPREDIS_SESSION:6rtu66hia6rjq9rpadstnsqb61"
11) "PHPREDIS_SESSION:hdi4f5r122gg1n9sj5lllbqf42"
12) "PHPREDIS_SESSION:8tf4q887ti8m11sknl5oto82m4"
13) "PHPREDIS_SESSION:hc1h18jtkrvk3secno4nmk7km2"

這樣就配置完成了。linux

注意: 注: 若是是在集羣架構中,須要使用predis擴展模塊,擴展地址 https://github.com/nrk/predisgit

18. redis主從配置

爲了節省資源,本實驗在一臺機器進行。即,在一臺機器上啓動兩個端口,模擬兩臺機器。github

1 redis主從搭建

準備
仍是以前的yt-01主機,環境是LAMP+redis

複製redis配置文件
[root@adailinux ~]# cp /etc/redis.conf /etc/redis2.conf

配置redis從的配置文件
[root@adailinux ~]# vim /etc/redis2.conf    //須要修改port,dir,pidfile,logfile
port 6380   //由於是同一臺服務器,2個進程,因此須要換一個端口
pidfile /var/run/redis_6380.pid
logfile "/tmp/logs/redis2.log"
dir /data/redis2
# slaveof <masterip> <masterport>
slaveof 127.0.0.1 6379        //添加這一行
###指定主服務器IP和端口
# masterauth passwd123
###若是主服務器設定了密碼,須要在從服務器上添加該參數

建立redis從的庫文件夾
[root@adailinux ~]# mkdir /data/redis2

啓動Redis
[root@adailinux ~]# redis-server /etc/redis.conf
[root@adailinux ~]# redis-server /etc/redis2.conf 

[root@adailinux ~]# ps aux |grep redis
root 2454 0.2 0.4 145244 2356 ? Ssl 17:18 0:00 redis-server 127.0.0.1:6379
root 2459 0.3 0.4 145244 2332 ? Ssl 17:19 0:00 redis-server 127.0.0.1:6380
[root@adailinux ~]# netstat -lntp |grep redis
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 2454/redis-server 1
tcp 0 0 127.0.0.1:6380 0.0.0.0:* LISTEN 2459/redis-server 1
啓動成功,redis主從搭建完畢!

2 查看slave上的數據

[root@adailinux ~]# redis-cli -p 6380
127.0.0.1:6380> keys *
 1) "list1"
 2) "hseta"
 3) "set1"
 4) "set3"
 5) "key2"
 6) "k1"
 7) "set4"
 8) "seta"
 9) "k2"
10) "k3"
11) "zseta"
12) "setb"
13) "hash1"
14) "set5"
15) "list2"
16) "mykey"

3 測試主從

在master上建立數據:
[root@adailinux ~]# redis-cli -p 6379
127.0.0.1:6379> del key
(integer) 1
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> set test 00001
OK
在slave上查看:
[root@adailinux ~]# redis-cli -p 6380
127.0.0.1:6380> select 1
127.0.0.1:6380[1]> keys *
1) "test"
127.0.0.1:6380[1]> get test
"00001"

注意: Redis主從和mysql主從不同,Redis主從不用事先同步數據,它會自動同步。由於master上設置有參數「slave-read-only yes」,即該slave爲只讀數據庫!redis

相關文章
相關標籤/搜索