redis慢查询日志,php安装redis扩展,redis存储session,redis主从配置
笔记内容: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 # 访问测试页,这一步可以执行多几次
1514996162<br><br>1514996162<br><br>e5o5ss0a5pkdgm2vtjn5fkc126 # 输出这样一串字符代表成功
[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主从不用事先同步数据,它会自动同步过去。
- 有趣的linux命令总结(78天)
- 生产环境sql语句调优实战第七篇(r2笔记99天)
- 一个普通数据库用户所能查到的"意料之外"的信息(r2笔记98天)
- 查看并行进程的一些简单信息(r3笔记第17天)
- 多行数据的批处理之bulk collect(r3笔记第16天)
- pl/sql中错误的异常处理 (r3笔记第15天)
- 关于session leak的问题分析(r3笔记第13天)
- 执行计划的偏差导致的性能问题(r3笔记第12天)
- 关于评审开发人员的sql语句(r3笔记第11天)
- 性能下降的不定时炸弹_过旧的sql_profile(r3笔记第9天)
- 关于抓取session信息的一个脚本(r3笔记第8天)
- oracle PL/SQL中的重载 (r3笔记27天)
- 使用Python进行描述性统计
- 关于修改分区表的准备和操作细则(r3笔记26天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Flutter基础widgets教程-CupertinoAlertDialog篇
- Spring的Controller是单例还是多例?怎么保证并发的安全
- 用TypeScript装饰器实现一个简单的依赖注入
- PING问题解决方法_20190305
- 前端需要掌握的设计模式
- @vue/composition-api速成课(通俗易懂版)
- 新1期视频第14课und异常中断模式的bug以及对应的解决方法
- 第一课:linux设备树的引入与体验(基于linux4.19内核版本)
- 第二课:linux设备树的规范(dts和dtb)
- 二叉树剪枝了解一下~
- 第三课:linux内核对设备树的处理
- 第四课:u-boot对设备树的支持
- 第五课. 内核中断系统中的设备树
- 第六课:在LCD驱动中使用设备树
- 拒绝接口裸奔!开放API接口签名验证!