专栏首页Laoqi's Linux运维专列Redis慢日志+扩展模块+存储session+主从配置

Redis慢日志+扩展模块+存储session+主从配置

一、Redis 慢日志查询

编辑配置文件

vim /etc/redis.conf

针对慢查询日志,可以设置两个参数,一个是执行时长,单位是微秒,另一个是慢查询日志的长度。当一个新的命令被写入日志时,最老的一条会从命令日志队列中被移除。

slowlog-log-slower-than 1000 //单位ms,表示慢于1000ms则记录日志

slowlog-max-len 128  //定义日志长度,表示最多存128条

和mysql不一样的是mysql会把慢日志记录在日志中,而redis 是使用命令来查看的。

slowlog get //列出所有的慢查询日志

slowlog get 2 //列出最新的2条慢日志

slowlog len //查看慢查询日志条数

二、PHP 安装 Redis 扩展模块

cd /usr/local/src

wget https://coding.net/u/aminglinux/p/yuanke_centos7/git/raw/master/21NOSQL/phpredis.zip

unzip phpredis.zip

cd phpredis-develop

/usr/local/php-fpm/bin/phpize

./configure --with-php-config=/usr/local/php-fpm/bin/php-config

make && make install

echo $?

vim /usr/local/php-fpm/etc/php.ini 

//搜索 extension 并在其下增加  extension=redis.so

/usr/local/php-fpm/bin/php -m|grep redis   //看是否有redis模块

重启php-fpm服务

/etc/init.d/php-fpm restart

三、PHP中使用redis – 存储session

和memcached服务一样,在配置session存储的时候只需要添加配置文件即可。

3.1 三种方式添加:(我测试使用最后一种)

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"

或者php-fpm配置文件对应的pool中增加:

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

编辑php配置文件:

vim /usr/local/php-fpm/etc/php-fpm.conf

/etc/init.d/php-fpm restart

3.2 下载测试文件

wget http://study.lishiming.net/.mem_se.txt

将其移动到虚拟主机目录中:

mv /root/.mem_se.txt /data/wwwroot/www.haha.com

cd !$

cp .mem_se.txt 1.php

在php-fpm.conf对应的pool中添加:

vim /usr/local/php-fpm/etc/php-fpm.conf

添加:
php_value[session.save_handler] = memcache
php_value[session.save_path] = "tcp://192.168.96.129:11211"

注:如上要是有专门的memcache服务器,这儿就需要配置独立memcache的地址。

/etc/init.d/php-fpm restart

3.3 测试:

[root@zhdy01 www.zhdy01.com]# curl localhost/1.php
1507886013<br><br>1507886013<br><br>5h2je3t72gbvelemovgrmb4gs6 
[root@zhdy01 www.zhdy01.com]# curl localhost/1.php
1507886018<br><br>1507886018<br><br>ci9h2is69rii4o3t8018l08na2 
[root@zhdy01 www.zhdy01.com]# curl localhost/1.php
1507886019<br><br>1507886019<br><br>pq113ge5hdjm6sffb1hv6i50b7 
[root@zhdy01 www.zhdy01.com]# curl localhost/1.php
1507886020<br><br>1507886020<br><br>bi3in2b28voubbaenvosrihmf4 
[root@zhdy01 www.zhdy01.com]# curl localhost/1.php
1507886021<br><br>1507886021<br><br>0m6458v0v39sqhljldjqm6hd06 

登录 redis 查看结果:

127.0.0.1:6379> keys *
1) "ss"
2) "PHPREDIS_SESSION:5h2je3t72gbvelemovgrmb4gs6"
3) "PHPREDIS_SESSION:pq113ge5hdjm6sffb1hv6i50b7"
4) "PHPREDIS_SESSION:0m6458v0v39sqhljldjqm6hd06"
5) "PHPREDIS_SESSION:ci9h2is69rii4o3t8018l08na2"
6) "PHPREDIS_SESSION:bi3in2b28voubbaenvosrihmf4"

127.0.0.1:6379> get "PHPREDIS_SESSION:5h2je3t72gbvelemovgrmb4gs6"
"TEST|i:1507886013;TEST3|i:1507886013;"
参考如上值,正好相互对应。

如上只是单台redis server的一系列配置,但是一旦接入集群环境就需要用php连接redis cluster,需要使用predis扩展

安装方法类似phpredis,predis扩展地址 https://github.com/nrk/predis

四、Redis 主从配置

主机名

IP 地址

zhdy01 (主)

192.168.59.131

zhdy02 (从)

192.168.59.138

配置Redis的主从要比配置Mysql的主从简单的多,其实我们只需要在从Redis server上面配置一下即可。

修改zhdy02 配置文件:

vim /etc/redis.conf

在从Redis上面指定主是谁
//搜索 关键词slaveof 并在其下配置:
slaveof 192.168.59.131 6379

如果主上面配置了密码,我们一定要在从这边去配置一下:
//去掉前面的# 并写上密码即可
# masterauth <master-password>

其它的配置类似于配置Redis主一样!

配置完成后 启动 redis 服务

查看配置成功与否:

zhdy01 (主):

zhdy02 (从):

在主上面 curl 一些session并查看:

在从Redis 上面去查看session是否已经同步:

细致的是不是已经发现了多了一个age 是我刚刚在排错的时候在主上面增加了一个键值!

遇到的问题:

主从不同步,从上面显示 down

查看报错日志:
# cat /var/log/redis.log

2887:S 13 Oct 18:27:42.837 * Connecting to MASTER 192.168.59.131:6379
2887:S 13 Oct 18:27:42.837 * MASTER <-> SLAVE sync started
2887:S 13 Oct 18:27:42.838 # Error condition on socket for SYNC: Connection refused
2887:S 13 Oct 18:27:43.846 * Connecting to MASTER 192.168.59.131:6379
解决方案:

在 Redis 服务器上的redis.conf中修改bind字段,将

bind 127.0.0.1

修改为

bind 0.0.0.0

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Php-fpm相关配置

    老七Linux
  • Nginx防盗链+Nginx访问控制+Nginx解析php相关配置+Nginx 代理

    老七Linux
  • Memcached数据操作

    老七Linux
  • windows 安装 Apache、php、mysql及其配置(转载)

    此文包括的注意内容:软件版本及下载地址 Apache2.4的配置和安装 php7.0的配置 mysql5.5的安装 常见问题及解决方法 1.软件版本 Windo...

    lin_zone
  • laravel5.3的新功能尝鲜

    上一节课 https://my.oschina.net/lilugirl2005/blog/783370

    lilugirl
  • Ubuntu 16.04 下 Typecho 部署

    站点购买的时候腾讯只送了 20G 云盘,当我购买第二款机器的时候额度提升到了 50G。加上机器当时使用的是 Ubuntu 14.04 而且使用的是 HTTP 协...

    BigNerdCoding
  • 了解PHP-FPM

    在服务器上,当我们查看php进程时,全都是php-fpm进程,大家都知道这个就是php的运行环境,那么,它到底是个什么东西呢?

    硬核项目经理
  • WP-PostViews Plus统计插件在TwentyTen主题下的使用

    为了博客的文章浏览统计,让我这个不怎么熟悉 PHP 的菜鸟硬是从昨晚折腾到现在! 主要原因是我不太熟悉 PHP 的结构,结果被网上的教程搞得云里雾里,通过度娘搜...

    张戈
  • RPO漏洞深入剖析与利用

    PRO的全称为“Relative Path Overwrite”,也就是相对路径覆盖。利用浏览器和服务器对资源加载设置的差异,通过某些方法和技巧,在相对路径处,...

    Ms08067安全实验室
  • Thinkphp框架的项目规划总结和踩坑经验

    1、项目分为PC端、移动端、和PC管理端,分为对应目录为 /Application/Home,/Application/Mobile,/Application/...

    公众号php_pachong

扫码关注云+社区

领取腾讯云代金券