博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis慢查询日志,php安装redis扩展,redis存储session,redis主从配置
阅读量:6993 次
发布时间:2019-06-27

本文共 4602 字,大约阅读时间需要 15 分钟。

笔记内容: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.confslowlog-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:         20131106Zend Module Api No:      20131226Zend 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 redisredis[root@localhost ~]#

重启php-fpm服务:

[root@localhost ~]# /etc/init.d/php-fpm restartGracefully shutting down php-fpm . doneStarting 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] = redisphp_value[session.save_path] = "tcp://127.0.0.1:6379"

2.修改完之后重启php-fpm服务:

[root@localhost ~]# /etc/init.d/php-fpm restartGracefully shutting down php-fpm . doneStarting 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
1514996162
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.confbind 192.168.77.130

从机器:

[root@localhost ~]# vim /etc/redis.confbind 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主从不用事先同步数据,它会自动同步过去。

转载于:https://blog.51cto.com/zero01/2057107

你可能感兴趣的文章
hadoop多文件输出
查看>>
【生成树,堆】【CF1095F】 Make It Connected
查看>>
一文详解Spring Cloud Feign重试机制
查看>>
linux下的apue.3e安装[Unix环境高级编程]
查看>>
How do I do a bulk insert in MySQL using Node.js
查看>>
Linux系统下实现SVN + Apache + SSL服务器框架的架设
查看>>
Oracle 11g数据库详细安装步骤图解
查看>>
机器学习之特征选择---特征选择算法
查看>>
嵌入式开发之hisilicon---hi3536 处理器简介
查看>>
目标跟踪之模板匹配---简单的模板匹配
查看>>
css美化网页元素
查看>>
histogram
查看>>
51单片机点亮双向流水灯
查看>>
字符串前面+r
查看>>
C#网络编程(基本概念和操作) - Part.1
查看>>
SQLite的sqlite3_column_blob函数
查看>>
CLR的执行模型(3):加载
查看>>
网站伪静态的好处与坏处
查看>>
IOS的三种CallBack
查看>>
VC++编程中常用的字符串转换函数
查看>>