编辑配置文件
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 //查看慢查询日志条数
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
和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
主机名 | 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