设为首页 收藏本站
查看: 991|回复: 0

[经验分享] redis慢查询日志,php安装redis扩展,redis存储session,redis主从配置

[复制链接]
发表于 2018-11-3 07:50:31 | 显示全部楼层 |阅读模式
  笔记内容:redis慢查询日志,php安装redis扩展,redis存储session,redis主从配置
  笔记日期:2018-1-03


  • 21.18 redis慢查询日志
  • 21.19 php安装redis扩展
  • 21.20 redis存储session
  • 21.21 redis主从配置
redis慢查询日志
  和mysql一样redis也有慢查询日志,redis的慢查询日志默认是开启的。
  针对慢查询日志,主要是设置两个参数,一个是执行时长,单位是微秒,另一个是慢查询日志的长度。当一个新的命令被写入日志时,最老的一条会从命令日志队列中被移除。
  编辑配置文件,文件中搜素slowlog,可以设置以下几个参数,一般情况下保持默认即可:
  

[root@localhost ~]# vim /etc/redis.conf  
slowlog-log-slower-than 1000 //单位ms,表示慢于1000ms则记录日志
  
slowlog-max-len 128  //定义日志长度,表示最多存128条
  

  修改完后要重启redis服务:

  killall redis-server
  redis-server /etc/redis.conf

  然后在redis的命令行中可以使用以下命令查看相应的慢查询日志信息

  slowlog get //列出所有的慢查询日志
  slowlog get 2 //只列出2条
  slowlog len //查看慢查询日志条数


php安装redis扩展
  下载、解压、编译安装,素质三连:
  

[root@localhost ~]# cd /usr/local/src/  
[root@localhost /usr/local/src]# wget https://coding.net/u/aminglinux/p/yuanke_centos7/git/raw/master/21NOSQL/phpredis.zip
  
[root@localhost /usr/local/src]# unzip phpredis.zip
  
[root@localhost /usr/local/src]# cd phpredis-develop
  
[root@localhost /usr/local/src/phpredis-develop]# /usr/local/php-fpm/bin/phpize
  
Configuring for:
  
PHP Api Version:         20131106
  
Zend Module Api No:      20131226
  
Zend Extension Api No:   220131226
  
[root@localhost /usr/local/src/phpredis-develop]# ./configure --with-php-config=/usr/local/php-fpm/bin/php-config
  
[root@localhost /usr/local/src/phpredis-develop]# echo $?
  
0
  
[root@localhost /usr/local/src/phpredis-develop]# make && make install
  

  编辑php配置文件:
  

[root@localhost ~]# vim /usr/local/php-fpm/etc/php.ini  
# 增加这一行
  
extension=redis.so
  

  查看是否有redis模块:
  

[root@localhost ~]# /usr/local/php-fpm/bin/php -m|grep redis  
redis
  
[root@localhost ~]#
  

  重启php-fpm服务:
  

[root@localhost ~]# /etc/init.d/php-fpm restart  
Gracefully shutting down php-fpm . done
  
Starting php-fpm  done
  
[root@localhost ~]#
  

在PHP中使用redis存储session
  1.编辑PHP配置文件:
  

[root@localhost ~]# vim /usr/local/php-fpm/etc/php.ini  
# 修改或增加这两行
  
session.save_handler = "redis"
  
session.save_path = "tcp://127.0.0.1:6379"
  

  如果是apache的话可以在虚拟主机配置文件中这样配置:
  

php_value session.save_handler " redis"  
php_value session.save_path " tcp://127.0.0.1:6379"
  

  nginx的话可以在php-fpm配置文件对应的pool中增加:
  

php_value[session.save_handler] = redis  
php_value[session.save_path] = "tcp://127.0.0.1:6379"
  

  2.修改完之后重启php-fpm服务:
  

[root@localhost ~]# /etc/init.d/php-fpm restart  
Gracefully shutting down php-fpm . done
  
Starting php-fpm  done
  
[root@localhost ~]#
  

  3.为了方便一会的测试,如果配置了redis的密码的话,得先把redis的密码去掉:
  

[root@localhost ~]# vim /etc/redis.conf  
# 把密码注释掉
  
# requirepass password
  

  4.修改完后要重启redis服务:

  killall redis-server
  redis-server /etc/redis.conf

  5.测试把session存储到redis里:
  

[root@localhost ~]# wget http://study.lishiming.net/.mem_se.txt  # 下载测试文件  
[root@localhost ~]# mv .mem_se.txt /data/wwwroot/default/test.php  # 移动到默认站点目录下并更名
  
[root@localhost ~]# curl localhost/test.php  # 访问测试页,这一步可以执行多几次
  
15149961621514996162e5o5ss0a5pkdgm2vtjn5fkc126   # 输出这样一串字符代表成功
  
[root@localhost ~]#
  

  6.进入redis里查看session是否存储成功:
  

[root@localhost ~]# redis-cli  
127.0.0.1:6379> keys *
  1) "set2"
  2) "user1"
  3) "set6"
  4) "PHPREDIS_SESSION:icioh5tima4fr96o985urv5jr1"
  5) "newmykey"
  6) "PHPREDIS_SESSION:eimb3t5vjmlgbapgedr9k6jlt7"
  7) "PHPREDIS_SESSION:4jm7njsngq049em06jvotfpeo4"
  8) "k2"
  9) "k1"
  
10) "k3"
  
11) "PHPREDIS_SESSION:f3jhq04pg6elk8sqdsv6o0vbr2"
  
12) "PHPREDIS_SESSION:eb2dbgeb4q70pb8qq10tpr1103"
  
13) "hash1"
  
14) "user2"
  
15) "PHPREDIS_SESSION:b5vtbv01p648rrdhkclhi7ojl2"
  
16) "set3"
  
17) "list2"
  
18) "hash2"
  
19) "PHPREDIS_SESSION:otq32l2cartcvpjabq45eq5ht3"
  
20) "PHPREDIS_SESSION:e5o5ss0a5pkdgm2vtjn5fkc126"
  
21) "zset1"
  
22) "PHPREDIS_SESSION:g8tgop8upsvenrnof8p14ia837"
  
23) "set5"
  
127.0.0.1:6379>
  

  如上,多了几条 PHPREDIS_SESSION 标识的session数据代表存储成功。
  查看jey对应的值:
  

127.0.0.1:6379> get PHPREDIS_SESSION:g8tgop8upsvenrnof8p14ia837  
"TEST|i:1514996242;TEST3|i:1514996242;"
  
127.0.0.1:6379>
  

redis主从配置
  redis的主从和mysql主从类似,但是配置起来比mysql要简单。
  两台机器的IP:
  192.168.77.130  (主)
  192.168.77.128  (从)
  redis版本:4.0.0.1
  1.两台机器都关闭所有的防火墙。
  2.如果你的两台机器都只监听了127.0.0.1这个本地ip的话,需要先添加能够访问外网的ip:
  主机器:
  

[root@localhost ~]# vim /etc/redis.conf  
bind 192.168.77.130
  

  从机器:
  

[root@localhost ~]# vim /etc/redis.conf  
bind 192.168.77.128
  

  以上这一步要注意,如果只监听了127.0.0.1的话主从两台机器是无法互相连通6379端口的,而且修改完后需要重启redis服务。
  3.开始配置主从,编辑 从(slave) 上的redis配置文件:
  

[root@localhost ~]# vim /etc/redis.conf  
# 增加这行配置,参数是主的ip和端口
  
slaveof 192.168.77.130 6379
  

  
# 如果主机器上设置了密码,还需要增加这行配置,如果没有则不需要
  
masterauth password # 设置主的密码
  

  修改完后重启从机器的redis服务:

  killall redis-server
  redis-server /etc/redis.conf

  测试:
  在从机器上进入redis的命令行,然后执行keys *命令,看看主上的数据是否已经同步过来。如下,我这里是同步成功的:
  

[root@localhost ~]# redis-cli  
127.0.0.1:6379> keys *
  1) "user1"
  2) "hash2"
  3) "newmykey"
  4) "set5"
  5) "user2"
  6) "k2"
  7) "hash1"
  8) "k3"
  9) "test123"
  
10) "list2"
  
11) "k1"
  
12) "set2"
  
13) "set3"
  
14) "zset1"
  
15) "set6"
  
127.0.0.1:6379>
  

  注意:redis主从和mysql主从不一样,redis主从不用事先同步数据,它会自动同步过去。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-630019-1-1.html 上篇帖子: redis笔记-指令原理篇 下篇帖子: redis笔记-数据结构篇
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表