redis慢查询日志, php中使用redis, redis主从配置

慢查询日志

  • 默认开启,配置内容如下:
slowlog-log-slower-than 10000  #定义多长时间为慢,单位为微秒;
slowlog-max-len 128   #记录条数为128条;
  • 修改参数查看慢查询日志
slowlog-log-slower-than 10
slowlog-max-len 128
[root@draft redis4]# pkill redis
[root@draft redis4]# redis-server /etc/redis.conf 
[root@draft redis4]# redis-cli -h 127.0.0.1 -p  16000 -a 'password'
127.0.0.1:16000> keys *
1) "s3"
2) "k3"
3) "l1"
4) "z2"
5) "s1"
6) "d2"
7) "d1"
8) "k2"
9) "d3"
127.0.0.1:16000> get k3
"34"
127.0.0.1:16000> SMEMBERS s3
1) "2"
2) "4"
3) "6"
4) "7"
5) "8"
6) "9"
7) "10"
127.0.0.1:16000> slowlog get  #查看所有慢查询日志;
1) 1) (integer) 2
   2) (integer) 1576209122
   3) (integer) 22
   4) 1) "SMEMBERS"
      2) "s3"
   5) "127.0.0.1:53310"
   6) ""
2) 1) (integer) 1
   2) (integer) 1576209026
   3) (integer) 38
   4) 1) "keys"
      2) "*"
   5) "127.0.0.1:53310"
   6) ""
3) 1) (integer) 0
   2) (integer) 1576209019
   3) (integer) 358
   4) 1) "COMMAND"
   5) "127.0.0.1:53310"
   6) ""
127.0.0.1:16000> slowlog get 1  #增加数字,显示最近的几条;
1) 1) (integer) 3
   2) (integer) 1576209149
   3) (integer) 69
   4) 1) "slowlog"
      2) "get"
   5) "127.0.0.1:53310"
   6) ""
127.0.0.1:16000> slowlog len   #查看慢查询条数;
(integer) 5

php5安装redis扩展模块

  • 下载redis扩展包
  • 编译安装
  • 修改配置文件
  • 重启服务
  • 查看模块
  • 具体操作情况
[root@draft src]# wget https://coding.net/u/aminglinux/p/yuanke_centos7/git/raw/master/21NOSQL/phpredis.zip
[root@draft src]# unzip phpredis.zip
[root@draft src]# cd phpredis-develop/
[root@draft phpredis-develop]# /usr/local/php-fpm/bin/phpize 
[root@draft phpredis-develop]# ./configure --with-php-config=/usr/local/php-fpm/bin/php-config 
[root@draft phpredis-develop]# make
[root@draft phpredis-develop]# make install
Installing shared extensions:     /usr/local/php-fpm/lib/php/extensions/no-debug-non-zts-20131226/
[root@draft phpredis-develop]# ls /usr/local/php-fpm/lib/php/extensions/no-debug-non-zts-20131226/
memcache.so  opcache.a  opcache.so  redis.so
[root@draft phpredis-develop]# vi /usr/local/php-fpm/etc/php.ini #添加语句;
extension=redis.so
[root@draft phpredis-develop]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done
[root@draft phpredis-develop]# /usr/local/php-fpm/bin/php -m |grep redis
redis

PHP中使用redis - 存储session

  • 修改配置文件php-fpm.conf
  • 重启php
  • 使用php页面连接和创建session
  • 查看redis里是否存有session
  • 具体操作情况
[root@draft phpredis-develop]# vim /usr/local/php-fpm/etc/php-fpm.conf  #增加如下语句;
php_value[session.save_handler] = redis
php_value[session.save_path] = " tcp://127.0.0.1:16000?auth=password "
[root@draft phpredis-develop]# vim /etc/redis.conf   #配置了使用密码登陆;
requirepass password
[root@draft phpredis-develop]# cat /usr/share/nginx/html/2.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@draft phpredis-develop]# service php-fpm restart
[root@draft phpredis-develop]# !curl
curl 127.0.0.1/2.php
1576210043<br><br>1576210043<br><br>dv1m6smrp070sipu7ukqa8rul7 
[root@draft phpredis-develop]# curl 127.0.0.1/2.php
1576210047<br><br>1576210047<br><br>hdg8b6cliligsbr3208eg8hrt2 
[root@draft phpredis-develop]# curl 127.0.0.1/2.php
1576210048<br><br>1576210048<br><br>o5f92nb1fpb30k5onfh6avhu71 
[root@draft phpredis-develop]# curl 127.0.0.1/2.php
1576210048<br><br>1576210048<br><br>b6o038becf4q53fuk3i71idt34 
[root@draft phpredis-develop]# curl 127.0.0.1/2.php
1576210049<br><br>1576210049<br><br>9j8f6amuf4eni7k5d024oqu317 
[root@draft phpredis-develop]# curl 127.0.0.1/2.php
1576210050<br><br>1576210050<br><br>3qsdtakgvgrm1dk0k2elou7417 
[root@draft phpredis-develop]# redis-cli -h 127.0.0.1 -p  16000 -a 'password'
127.0.0.1:16000> keys *
 1) "s3"
 2) "k3"
 3) "l1"
 4) "PHPREDIS_SESSION:b6o038becf4q53fuk3i71idt34"
 5) "PHPREDIS_SESSION:dv1m6smrp070sipu7ukqa8rul7"
 6) "z2"
 7) "PHPREDIS_SESSION:hdg8b6cliligsbr3208eg8hrt2"
 8) "s1"
 9) "d2"
10) "d1"
11) "k2"
12) "PHPREDIS_SESSION:o5f92nb1fpb30k5onfh6avhu71"
13) "d3"
14) "PHPREDIS_SESSION:3qsdtakgvgrm1dk0k2elou7417"
15) "PHPREDIS_SESSION:9j8f6amuf4eni7k5d024oqu317"
127.0.0.1:16000> get PHPREDIS_SESSION:9j8f6amuf4eni7k5d024oqu317
"TEST|i:1576210049;TEST3|i:1576210049;"
127.0.0.1:16000> ttl PHPREDIS_SESSION:csd9tn75b844j932i2674lg0t3   #session保留时间;
(integer) 1406

Redis主从配置

  • 在另一台机器上安装redis, 修改必要配置文件,再修改主从设置后,即可实现主从配置;
  • 实验在一台机器上启动两个redis,实现主从,跟两台机器的设置也差不多;
  • 具体操作如下
[root@draft phpredis-develop]# cp /etc/redis.conf /etc/redis2.conf
[root@draft phpredis-develop]# vim /etc/redis2.conf   #配置文件如下;
root@draft phpredis-develop]# cat !$
cat /etc/redis2.conf
bind 127.0.0.1
requirepass password
rename-command CONFIG shezhi
protected-mode yes
port 6380    #不同点;
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_6380.pid    #不同点;
loglevel notice
logfile "/var/log/redis2.log"     #不同点;
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /data/redis2    #不同点;
slaveof 127.0.0.1 16000    #不同点;
masterauth password        #不同点;
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
slave-lazy-flush no
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble no
lua-time-limit 5000
slowlog-log-slower-than 10
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

[root@draft phpredis-develop]# mkdir /data/redis2    #创建目录;
[root@draft phpredis-develop]# redis-server /etc/redis2.conf    #启动;
[root@draft phpredis-develop]# netstat -lntp |grep 6380
tcp        0      0 127.0.0.1:6380          0.0.0.0:*               LISTEN      19565/redis-server  

[root@draft phpredis-develop]# redis-cli -h 127.0.0.1 -p  16000 -a 'password'
127.0.0.1:16000> keys *
1) "s3"
2) "k3"
3) "l1"
4) "z2"
5) "s1"
6) "d2"
7) "d1"
8) "k2"
9) "d3"
127.0.0.1:16000> exit
[root@draft phpredis-develop]# redis-cli -h 127.0.0.1 -p  6380 -a 'password'    #数据已自动同步;
127.0.0.1:6380> keys *
1) "d2"
2) "d1"
3) "l1"
4) "d3"
5) "z2"
6) "k3"
7) "s3"
8) "k2"
9) "s1"
[root@draft phpredis-develop]# redis-cli -h 127.0.0.1 -p  6380 -a 'password'
127.0.0.1:6380> shezhi get slaveof
1) "slaveof"
2) "127.0.0.1 16000"
127.0.0.1:6380> set key1 999   #作为slave不能写入;
(error) READONLY You can't write against a read only slave.
发布了125 篇原创文章 · 获赞 5 · 访问量 4619

猜你喜欢

转载自blog.csdn.net/tanyyinyu/article/details/103523258