21.18 redis慢查询日志
21.19 php安装redis扩展
21.20 redis存储session
21.21 redis主从配置
21.18 redis慢查询日志
reids和MySQL一样也有慢查询日志,并在配置文件下定义。1
[root@kun02 ~]# vim /etc/redis.conf
1 | slowlog-log-slower-than 10000 ##单位ms,表示慢于10000ms则记录日志,10000ms等于0.01s |
由于redis的数据是内在于内存中,因此只能通过命令行的查看慢查询日志
列出所有的慢查询日志
格式:slowlog get
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23[root@kun02 ~]# redis-cli
127.0.0.1:6379> SLOWLOG get
1) 1) (integer) 2
2) (integer) 1534796516
3) (integer) 105
4) 1) "KEYS"
2) "k3"
5) "127.0.0.1:50496"
6) ""
2) 1) (integer) 1
2) (integer) 1534796511
3) (integer) 37
4) 1) "KEYS"
2) "*"
5) "127.0.0.1:50496"
6) ""
3) 1) (integer) 0
2) (integer) 1534796505
3) (integer) 301
4) 1) "COMMAND"
5) "127.0.0.1:50496"
6) ""
这里有3条命令 第一条是登录 第二条是keys * 第三条是keys k31
2
3
4
5
6
7
8
9
10
11
12
13
14
15127.0.0.1:6379> SLOWLOG get 2 ##2表示显示最新的两条慢查询日志
1) 1) (integer) 3
2) (integer) 1534796526
3) (integer) 35
4) 1) "SLOWLOG"
2) "get"
5) "127.0.0.1:50496"
6) ""
2) 1) (integer) 2
2) (integer) 1534796516
3) (integer) 105
4) 1) "KEYS"
2) "k3"
5) "127.0.0.1:50496"
6) ""
列出当前慢日志的条数
格式:slowlog len
1
2127.0.0.1:6379> SLOWLOG len ##当前有5条慢日志
(integer) 5
21.19 php安装redis扩展模块
与memcache一样,redis要和php打交道就需要下载redis的模块
步骤
1.进入src目录并下载解压redis
1 | [root@kun03 ~]# cd /usr/local/src/ |
也可以去官方网站下载redis模块https://codeload.github.com/phpredis/phpredis/zip/develop
2.进入phpredis-develo目录里并生成configure
1 | [root@kun03 src]# cd phpredis-develop/ |
和安装memcache一样这里少了autoconf1
2
3
4
5
6[root@kun03 phpredis-develop]# yum install -y autoconf
[root@kun03 phpredis-develop]# /usr/local/php-fpm/bin/phpize
Configuring for:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303
3.初始化
1 | [root@kun03 phpredis-develop]# ./configure --with-php-config=/usr/local/php-fpm/bin/php-config |
4.编译 安装
1 | [root@kun03 phpredis-develop]# make |
5.加载扩张模块
1 | [root@kun03 phpredis-develop]# vim /usr/local/php-fpm/etc/php.ini |
6.重启php-fpm服务
1 | [root@kun03 phpredis-develop]# service php-fpm restart |
21.20 PHP中使用redis – 存储session
redis和memcache一样 存储session也有三种办法
1.编辑php.ini文件
1 | [root@kun03 redis-4.0.11]# vim /usr/local/php-fpm/etc/php.ini |
2.编辑httpd.cong相应的配置文件
1 | [root@kun02 src]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf |
3.编辑php相应的pool
1 | [root@kun02 src]# vim /usr/local/php-fpm/etc/php-fpm.d/test1.conf |
注意:由于我定义了监听了127.0.0.1 因此这里tcp的ip地址也有写127.0.0.1 否则失败
测试
下载一个php测试页面看redis是否存储了session
代码内容在https://coding.net/u/aminglinux/p/yuanke_centos7/git/blob/master/21NOSQL/session.php1
2[root@kun03 ~]# wget http://study.lishiming.net/.mem_se.txt
[root@kun03 ~]# cp .mem_se.txt /var/www/test1/index.html
访问几次测试页面 最后的为键名1
2[root@kun02 src]# curl localhost
1534809166<br><br>1534809166<br><br>m748s8primu6pu3b62pn4ejc35
进入redis1
2
3
4
5
6
7
8
9
10
11
12[root@kun02 src]# redis-cli
127.0.0.1:6379> KEYS *
1) "k2"
2) "set2"
3) "list1"
4) "sset1"
5) "hash2"
6) "key1"
7) "PHPREDIS_SESSION:m748s8primu6pu3b62pn4ejc35"
127.0.0.1:6379> get PHPREDIS_SESSION:m748s8primu6pu3b62pn4ejc35
"TEST|i:1534809166;TEST3|i:1534809166;"
21.21 redis主从配置
这里我们在同一台服务器上配置Redis主从,主继续使用6379端口,从使用6380端口,Redis主从只需要配置从机器上配置文件。当建立了Redis主从后 Redis数据就自动同步,不需要提前同步数据。
步骤
拷贝配置文件并改名Redis2
1 | [root@kun03 ~]# cp /etc/redis.conf /etc/redis2.conf |
修改redis2配置文件1
[root@kun03 ~]# vim /etc/redis2.conf
修改下面参数1
2
3
4
5
6
7port 6380
pidfile /var/run/redis_6380.pid
dir /data/redis2
logfile "/var/log/redis2.log"
添加下面参数1
slaveof 127.0.0.1 6379 ##slaveof 主IP 端口
如果主上设置了密码 从需要添加下面参数1
maseterauth 38003800 ## maseterauth 主的密码
默认设置从是只读的1
slave-read-only yes
创建从的数据目录
1 | [root@kun03 ~]# mkdir /data/redis2 |
启动Redis服务
1 | [root@kun03 ~]# redis-server /etc/redis.conf |
测试
在主上添加数据 回去从上看是否同步数据
1 | [root@kun03 ~]# redis-cli |