nosql——Redis(三)

回复 收藏

## 21.18 Redis慢查询日志

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

```

[root@adailinux ~]# vim /etc/redis.conf

slowlog-log-slower-than 10000  

#单位:微秒

slowlog-max-len 128

列出所有慢查询日志:

127.0.0.1:6379> slowlog get

(empty list or set)

列出两条慢查询日志:

127.0.0.1:6379> slowlog get 2

(empty list or set)

查看慢查询日志条数:

127.0.0.1:6379> slowlog len

(integer) 0

```

## 21.19 Redis存储PHP的session

PHP和Redis通过模块相结合,使用前先查看PHP是否有Redis模块,如果没有,按如下方式安装并配置。  

### 安装phpredis扩展模块

```

[root@adailinux src]# wget https://coding.net/u/aminglinux/p/yuanke_centos7/git/raw/master/21NOSQL/phpredis.zip

[root@adailinux src]# unzip  phpredis.zip

[root@adailinux src]# cd phpredis-develop/

[root@adailinux phpredis-develop]# /usr/local/php-fpm/bin/phpize

[root@adailinux phpredis-develop]# ./configure --with-php-config=/usr/local/php-fpm/bin/php-config

[root@adailinux phpredis-develop]# make && make install

增加如下配置:

[root@adailinux phpredis-develop]# vim /usr/local/php-fpm/etc/php.ini

extension=redis.so

[root@adailinux phpredis-develop]# /usr/local/php-fpm/sbin/php-fpm -m

redis

```

### Redis和PHP连接

```

方法1:编辑php.ini

[root@adailinux www]# vim /usr/local/php-fpm/etc/php.ini

session.save_handler = redis

session.save_path = "tcp://127.0.0.1:6379"

方法2:编辑pool文件:

[root@adailinux ~]# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf

php_value[session.save_handler] = redis

php_value[session.save_path] = "tcp://127.0.0.1:6379"

```

### 测试

```

[root@adailinux www]# pwd

/data/wwwroot/www

[root@adailinux www]# ls

1.php  index.php

#1.php为测试文件

[root@adailinux www]# cat 1.php 

<?php 

session_start(); 

if (!isset($_SESSION['TEST'])) { 

$_SESSION['TEST'] = time(); 

$_SESSION['TEST3'] = time(); 

print $_SESSION['TEST']; 

print "<br><br>"; 

print $_SESSION['TEST3']; 

print "<br><br>"; 

print session_id(); 

?> 

[root@adailinux www]# curl localhost/1.php

1506936047<br><br>1506936047<br><br>km1ii0ik1e9gm7ila821p5rm21 

[root@adailinux www]# redis-cli

127.0.0.1:6379> keys *

 6) "PHPREDIS_SESSION:0u8brm02qfatp8f4tebhjbmhb3"

 8) "PHPREDIS_SESSION:km1ii0ik1e9gm7ila821p5rm21"

 19) "PHPREDIS_SESSION:cop4l1app7fn0lpo1h0neeuna3"

```

即,配置完成!!!

**注:** 如果是在集群架构中,需要使用predis扩展模块,扩展地址 https://github.com/nrk/predis 。  

## 21.21 Redis主从配置

为了节省资源,本实验在一台机器进行。即,在一台机器上启动两个端口,模拟两台机器。  

```

机器准备:

[root@adailinux ~]# cp /etc/redis.conf /etc/redis2.conf

[root@adailinux ~]# vim /etc/redis2.conf

port 6380

pidfile /var/run/redis_6380.pid

logfile "/tmp/logs/redis2.log"

dir /data/redis2

# slaveof <masterip> <masterport>

slaveof 127.0.0.1 6379

###指定主服务器IP和端口

# masterauth <master-password>

###如果主服务器设定了密码,需要在从服务器上添加该参数

[root@adailinux ~]# mkdir /data/redis2

启动Redis:

[root@adailinux ~]# redis-server /etc/redis.conf 

[root@adailinux ~]# redis-server /etc/redis2.conf 

[root@adailinux ~]# ps aux |grep redis

root      2454  0.2  0.4 145244  2356 ?        Ssl  17:18   0:00 redis-server 127.0.0.1:6379

root      2459  0.3  0.4 145244  2332 ?        Ssl  17:19   0:00 redis-server 127.0.0.1:6380

[root@adailinux ~]# netstat -lntp |grep redis

tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      2454/redis-server 1 

tcp        0      0 127.0.0.1:6380          0.0.0.0:*               LISTEN      2459/redis-server 1 

启动成功!!!

```

至此,Redis主从搭建完毕!!!

### 查看slave上的数据

```

[root@adailinux ~]# redis-cli -p 6380

127.0.0.1:6380> keys *

 1) "list1"

 2) "hseta"

 3) "set1"

 4) "set3"

 5) "key2"

 6) "k1"

 7) "set4"

 8) "seta"

 9) "k2"

10) "k3"

11) "zseta"

12) "setb"

13) "hash1"

14) "set5"

15) "list2"

16) "mykey"

```

### 测试主从

```

在master上创建数据:

[root@adailinux ~]# redis-cli -p 6379

127.0.0.1:6379> del key 

(integer) 1

127.0.0.1:6379> select 1

OK

127.0.0.1:6379[1]> set test 00001

OK

在slave上查看:

[root@adailinux ~]# redis-cli -p 6380

127.0.0.1:6380> select 1

127.0.0.1:6380[1]> keys *

1) "test"

127.0.0.1:6380[1]> get test

"00001"

```

**注意:** Redis主从和mysql主从不一样,Redis主从不用事先同步数据,它会自动同步。因为master上设置有参数“slave-read-only yes”,即该slave为只读数据库! 

2017-10-13 10:18 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: