前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis慢日志+扩展模块+存储session+主从配置

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

作者头像
老七Linux
发布2018-05-09 17:15:38
6590
发布2018-05-09 17:15:38
举报
一、Redis 慢日志查询

编辑配置文件

代码语言:javascript
复制
vim /etc/redis.conf

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

代码语言:javascript
复制
slowlog-log-slower-than 1000 //单位ms,表示慢于1000ms则记录日志

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

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

代码语言:javascript
复制
slowlog get //列出所有的慢查询日志

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

slowlog len //查看慢查询日志条数
二、PHP 安装 Redis 扩展模块
代码语言:javascript
复制
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 三种方式添加:(我测试使用最后一种)

代码语言:javascript
复制
vim /usr/local/php-fpm/etc/php.ini
//更改或增加
session.save_handler = "redis" 
session.save_path = "tcp://127.0.0.1:6379" ```

或者apache虚拟主机配置文件中也可以这样配置:

代码语言:javascript
复制
php_value session.save_handler " redis" php_value session.save_path " tcp://127.0.0.1:6379"

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

代码语言:javascript
复制
php_value[session.save_handler] = redis
php_value[session.save_path] = " tcp://127.0.0.1:6379 "

编辑php配置文件:

代码语言:javascript
复制
vim /usr/local/php-fpm/etc/php-fpm.conf

/etc/init.d/php-fpm restart

3.2 下载测试文件

代码语言:javascript
复制
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 测试:

代码语言:javascript
复制
[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 配置文件:

代码语言:javascript
复制
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

查看报错日志:
代码语言:javascript
复制
# 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字段,将

代码语言:javascript
复制
bind 127.0.0.1

修改为

代码语言:javascript
复制
bind 0.0.0.0

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016/10/14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Redis 慢日志查询
  • 二、PHP 安装 Redis 扩展模块
  • 三、PHP中使用redis – 存储session
  • 四、Redis 主从配置
    • 遇到的问题:
      • 查看报错日志:
        • 解决方案:
        相关产品与服务
        云数据库 Redis
        腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档