redis 安装
在server3中安装
所需要的rpm包
php-5.3.3-38.el6.x86_64.rpm
php-cli-5.3.3-38.el6.x86_64.rpm
php-common-5.3.3-38.el6.x86_64.rpm
php-devel-5.3.3-38.el6.x86_64.rpm
php-fpm-5.3.3-38.el6.x86_64.rpm
php-gd-5.3.3-38.el6.x86_64.rpm
php-mbstring-5.3.3-38.el6.x86_64.rpm
php-mysql-5.3.3-38.el6.x86_64.rpm
php-pdo-5.3.3-38.el6.x86_64.rpm
nginx-1.8.0-1.el6.ngx.x86_64.rpm
yum install php-* nginx-1.8.0-1.el6.ngx.x86_64.rpm -y
查看 进程是否有 ps -aux
配nginx
更改php.ini
解压安装包
yum install unzip gcc -y
unzip phpredis-master.zip
make && make install
cd /etc/php.d/
cp mysql.ini redis.ini
vim redis.ini
安装 redis
tar zxf redis-3.2.9.tar.gz
cd redis-3.2.9
make && make install
cd utils
./install_server.sh 回车就行
Welcome to the redis service installer
This script will help you easily set up a running redis server
Please select the redis port for this instance: [6379]
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf]
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log]
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379]
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server]
Selected config:
Port : 6379
Config file : /etc/redis/6379.conf
Log file : /var/log/redis_6379.log
Data dir : /var/lib/redis/6379
Executable : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!
修改配置文件
vim /etc/redis/6379.conf
[root@server03 utils]# /etc/init.d/redis_6379 restart 重新启动
Stopping ...
Redis stopped
Starting Redis server...
在server2 中安装数据库和redis
yum isntall mysql-server gcc -y
tar zxf redis-3.2.9.tar.gz
cd redis-3.2.9
make && make install
cd utils
vim /etc/redis/6379.conf
bind 0.0.0.0
protected-mode no
/etc/init.d/redis_6379 restart
在server 5中只安装redis 安装步骤一样
主从同步
在server2 和server5中
vim /etc/redis/6379.conf
slaveof 172.25.254.3 6379 添加 这里3是master
/etc/init.d/redis_6379 restart
在server3中
更改
vim /etc/redis/6379.conf
bind 172.25.254.3
protected-mode no
/etc/init.d/redis_6379 restart
查看 redis-cli -h 172.25.254.3
info
只有master 可写 其他只能读
高可用
在主中添加
vim /etc/redis/6379.conf
slaveof 172.25.254.2 6379
vim /etc/redis/sentinel.conf
17 protected-mode no
21 port 26379
69 sentinel monitor mymaster 172.25.254.2 6379 2 masterip 端口 slave个数
98 sentinel down-after-milliseconds mymaster 5000
131 sentinel failover-timeout mymaster 10000
修改完成 之后scp 给slave
redis-server /etc/redis/sentinel.conf --sentinel 查看
当主shutdown
server 2 会自动成为master 继续操作
redis 缓存
关闭 server5 和server2
删除server3 中redis 添加的slaveof
cp test.php /usr/share/nginx/html/
vim test.php 254.3是redis 254.2是mysql
<?php
$redis = new Redis();
$redis->connect('172.25.254.3',6379) or die ("could net connect redis server");
# $query = "select * from test limit 9";
$query = "select * from test";
for ($key = 1; $key < 10; $key++)
{
if (!$redis->get($key))
{
$connect = mysql_connect('172.25.254.2','redis','westos');
mysql_select_db(test);
$result = mysql_query($query);
//如果没有找到$key,就将该查询sql的结果缓存到redis
while ($row = mysql_fetch_assoc($result))
{
$redis->set($row['id'],$row['name']);
}
$myserver = 'mysql';
break;
}
else
{
$myserver = "redis";
$data[$key] = $redis->get($key);
}
}
echo $myserver;
echo "<br>";
for ($key = 1; $key < 10; $key++)
{
echo "number is <b><font color=#FF0000>$key</font></b>";
echo "<br>";
echo "name is <b><font color=#FF0000>$data[$key]</font></b>";
echo "<br>";
}
?>
在server2中启动mysql
进入mysql
mysql> grant all on test.* to redis@localhost identified by 'westos';
mysql> flush privileges;
在浏览器中测试