lamp+redis 主从复制

Posted wutao1935

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lamp+redis 主从复制相关的知识,希望对你有一定的参考价值。

测试环境:

LAMP + Redis 主从复制:

LAMP server ip:10.0.0.4

主 Redis server ip:10.0.0.5

从Redis server  ip:10.0.0.6

 

LAMP 已经安装成功,安装过程见其他博文;

Redis主从配置非常简单,只需要在Redis丛库10.0.0.6配置中设置如下指令,slaveof表示指定主库的IP,10.0.0.5为master服务器,6379为master服务器Redis端口;

redis 安装:

wget http://download.redis.io/releases/redis-4.0.9.tar.gz 
tar zxf redis-4.0.9.tar.gz cd redis-4.0.9

 yum install gcc-c++ -y

 make PREFIX=/usr/local/redis MALLOC=libc install

cp redis.conf /usr/local/redis/

 

将/usr/local/redis/bin/目录加入至环境变量配置文件/etc/profile末尾,然后Shell终端执行source /etc/profile让环境变量生效:

echo "export PATH=/usr/local/redis/bin:$PATH" >> /etc/profile 
source /etc/profile

 nohup  /usr/local/redis/bin/redis-server  /usr/local/redis/redis.conf  &

 nohup不挂断地运行命令。 一般是和&号同时使用

 /usr/local/redis/bin/redis-cli  -p  6379 shutdown

 

2)在lamp server上添加php-redis 模块wget  https://github.com/phpredis/phpredis/archive/3.1.2.tar.gz

tar   xzf  3.1.2.tar.gz

#复制配置文件到/usr/local/php5/lib/下:此目录是在phpinfo页面Configuration File参数的目录下

\\cp /usr/src/php-5.3.28/php.ini-production  /usr/local/php5/lib/php.ini

#phpize 是属于 php-devel 中的东西,主要是设定 php 外挂模块的一些设定

例如你的php不支持mysql, mbstring、redis等

yum install autoconf  -y

Autoconf产生的配置脚本通常叫做configure。configure运行的时候会产生几个文件,这几个文件包含了有合适的值的配置参数。自动生成configure脚本的

cd   phpredis-3.1.2/

/usr/local/php5/bin/phpize

#phpize 是属于 php-devel 中的东西,主要是设定 php 外挂模块的一些设定

例如你的php不支持mysql, mbstring、redis等

./configure  --with-php-config=/usr/local/php5/bin/php-config  --enable-redis

make && make install

修改vim /usr/local/php5/lib/php.ini配置文件,添加redis.so模块,代码如下:

extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-zts-20090626"

extension=redis.so

重启lamp中的Apache 服务,编写phpinfo 测试页面:

<? php

phpinfo();

?>

会检测到redis模块:

 

redis从库配置:redis.conf

grep -v -E  "^#|^$" /usr/local/redis/redis.conf

redis.conf配置: daemonize no pidfile /var/run/redis.pid port 6379 slaveof 10.0.0.5 6379 #添加redis主库的ip和port tcp-backlog 511 timeout 0 tcp-keepalive 0 loglevel notice logfile "" databases 16 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename redis.rdb dir /data/redis/ slave-serve-stale-data yes slave-read-only yes repl-disable-tcp-nodelay no slave-priority 100 appendonly no appendfilename "appendonly.aof" appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb lua-time-limit 5000 slowlog-log-slower-than 10000 slowlog-max-len 128 latency-monitor-threshold 0 notify-keyspace-events "" hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-entries 512 list-max-ziplist-value 64 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-sparse-max-bytes 3000 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes

  

重启Redis主库、丛库服务,在Redis主库创建key及values,登录Redis丛库查看:

 

 

主库宕机之后可以使用从库继续配置,需要将discuz配置文件修改成从库地址:

 

 

Redis从库需要将配置修改成监听所有并去掉从库标签:

 

以上是关于lamp+redis 主从复制的主要内容,如果未能解决你的问题,请参考以下文章

LAMP+Redis缓存数据库整合

Redis主从与哨兵架构详解 Redis主从架构 如何在同一台机器搭建主从架构 Redis主从工作原理 数据部分复制 Jedis使用 Redis的管道(Pipeline) Redis Lua脚本(代码

linux企业运维--LAMP架构--mysql主从复制

今天来聊聊 Redis 的主从复制

Spring之redis主从复制(非哨兵模式)

redis实战_04_yucong_主从复制