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 条评论
登录 后参与评论

相关文章

来自专栏日常分享

Java 以及JEE环境快速搭建

  博主最近找了一个Java Development的实习,加上上个月末的考试周,所以很久没有更新博客。   上了一周的班,还没有在熟悉项目的阶段。

20110
来自专栏calvin

通过 pxe(网络安装)完成centos 系统的网络安装

首先交代环境。本地2台主机,一台windows主机,一台等待安装centos的主机。2台主机在同一个局域网。通过路由器自动获取ip上网。 网上大多数pxe安装...

37810
来自专栏小车博客

短网址程序YOURLS安装及配置教程与设置中文

43250
来自专栏运维小白

Linux基础(day57)

14.4 exportfs命令 exportfs命令 常用选项 -a 全部挂载或者全部卸载 -r 重新挂载 -u 卸载某一个目录 -v 显示共享目录 以下操作在...

26170
来自专栏飞雪无情的博客

使用Nginx搭建PHP服务器

一般我们都是采用Apache 作为PHP的解析服务器,这次则是采用Nginx这个强大的反向代理服务器来搭建PHP服务器。下面就以Linux发行版Ubuntu为例...

37630
来自专栏哎_小羊

记录Gerrit2.8.4环境迁移、安装、配置以及问题解决

前段时间,由于公司内部调整,需要将原gerrit系统中部分业务拆分迁移到新gerrit系统中,这里我就将整个环境迁移、环境搭建、环境配置、版本选择等做一下记录,...

56890
来自专栏Netkiller

Tomcat 安全配置与性能优化

Tomcat 安全配置与性能优化 摘要 我的系列文档 Netkiller Architect 手札Netkiller Developer 手札Netkiller...

36060
来自专栏iOS逆向

WEB平台DJANGO&VUE配置部署生产环境

nginx可以新建一个配置,放在项目目录,暂时不修改nginx的默认配置,端口号可以换一个,然后在/etc/nginx/conf.d/内新建一个软链接指向该配置...

811120
来自专栏散尽浮华

git push上传代码到gitlab上,报错401/403(或需要输入用户名和密码)

之前部署的gitlab,采用ssh方式连接gitlab,在客户机上产生公钥上传到gitlab的SSH-Keys里,git clone下载和git push上传都...

828100
来自专栏python3

gitlab 注册runner

向GitLab-CI注册一个Runner需要两样东西:GitLab-CI的url和注册token。 其中,token是为了确定你这个Runner是所有工程都能够...

17110

扫码关注云+社区

领取腾讯云代金券