Redis缓存数据的安装配置手册(仅供参考)
1、修改yum源
[root@benet ~]# vim /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/
failovermethod=priority
enabled=1
gpgcheck=0
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1
[root@benet ~]# vim /etc/yum.repos.d/rhel-source.repo 添加以下内容:
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.163.com/centos/6/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.163.com/centos/6/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
#packages used/produced in the build but not released
#[addons]
#name=CentOS-$releasever - Addons
#baseurl=http://mirrors.163.com/centos/$releasever/addons/$basearch/
#gpgcheck=1
#gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.163.com/centos/6/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirrors.163.com/centos/6/centosplus/$basearch/
gpgcheck=1
enabled=0
yum源更新
[root@benet ~]# yum update
2. yum安装
[root@benet ~]# yum install -y nginx php php-fpm php-cli php-common php-gd php-mbstring php-mysql php-pdo php-devel php-xmlrpc php-xml php-bcmath php-dba php-enchant mysql mysql-server
3. 简单配置nginx
[root@benet ~]# vim /etc/nginx/nginx.conf
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/logs/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
server {
listen 80;
server_name benet.cn;
location / {
root /var/www/;
index index.php index.html index.htm;
}
location ~ \.php$ {
root /var/www/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;
include fastcgi_params;
}
}
#gzip on;
# include /etc/nginx/conf.d/*.conf;
}
创建nginx日志文件目录
[root@benet ~]# mkdir -p /var/logs/nginx
[root@benet ~]# chown -R nginx:nginx /var/logs/
4. 启动nginx、php-fpm、mysqld服务
[root@benet ~]# /etc/init.d/nginx start
[root@benet ~]# sed -i 's/apache/nginx/g' /etc/php-fpm.d/www.conf
[root@benet ~]# /etc/init.d/php-fpm start
[root@benet ~]# mkdir /{logs/www}
[root@benet ~]# chown -R nginx:nginx /{logs,www}
[root@benet ~]# /etc/init.d/nginx restart
关闭防火墙
[root@benet ~]# /etc/init.d/iptables stop
查看监听端口
[root@benet ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 13414/nginx
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 13036/php-fpm
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 13192/mysqld
编写测试PHP脚本
[root@benet ~]# vim /var/www/index.php
<?php
phpinfo();
?>
5. 给mysql授权
[root@benet ~]# mysql
mysql> grant all privileges on *.* to root@localhost identified by '123456';
mysql> flush privileges;
5. 安装redis
[root@benet ~]# wget -c -t 0 http://download.redis.io/releases/redis-2.8.19.tar.gz
[root@benet ~]# mkdir /usr/local/redis
[root@benet ~]# tar xvf redis-2.8.19.tar.gz
[root@benet ~]# cd redis-2.8.19
[root@benet redis-2.8.19]# make
[root@benet ~]# cd redis-2.8.19/src/
[root@benet src]# cp redis-benchmark redis-check-aof redis-check-dump redis-cli redis-sentinel redis-server /usr/local/redis/
[root@benet ~]# cd redis-2.8.19
[root@benet redis-2.8.19]# cp redis.conf sentinel.conf /usr/local/redis/
启动redis服务
[root@benet ~]# /usr/local/redis/redis-server
6. 安装php的redis扩展
[root@benet ~]# wget -c -t 0 https://github.com/owlient/phpredis/archive/master.zip
[root@benet ~]# unzip master.zip
[root@benet ~]# cd phpredis-master/
[root@benet phpredis-master]# phpize
[root@benet phpredis-master]# ./configure --with-php-config=/usr/bin/php-config
[root@benet phpredis-master]# make && make install
#修改php的配置文件,如果没有“extension=redis.so”,就加上这一行
[root@benet ~]# vim /etc/php.ini
extension=redis.so
启动php-fpm服务
[root@benet ~]# /etc/init.d/php-fpm restart
查看php是否已经成功支持 redis
修改redis配置文件
[root@benet ~]# vim /usr/local/redis/redis.conf
daemonize yes
port 6379
logfile "/var/logs/redis/redis.log" #修改生成默认日志文件位置
dir /usr/local/redis/redisData #配置持久化文件存放位置
启动redis服务
[root@benet ~]# /usr/local/redis/redis-server
7. PHP模拟Redis给mysql数据库加速过程
在mysql中插入一些测试数据
[root@benet ~]# mysql -uroot -p123456
mysql> create database mytest;
mysql> use mytest;
mysql> create teble test (id int(7) not null auto_increment, name char(8) default null, PRIMARY KEY (id)) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
mysql> INSERT INTO `test` VALUES (1,'sven'),(2,'jim'),(3,'zhu'),(4,'wang'),(5,'ftd'),(6,'test'),(7,'test01'),(8,'test02'),(9,'test03');
8. 编写php的测试代码
[root@benet ~]# vim /var/www/index.php
<?php
$redis=new redis();
$redis->connect('127.0.0.1',6379)or die("could net redis server");
$query="select * from test limit8";
for($key=1;$key < 9;$key++)
{
if(!$redis->get($key))
{
$connect = mysql_connect('127.0.0.1','root','123456');
mysql_select_db(mytest);
$result=mysql_query($query);
echo "results from mysql";
echo "<hr>";
while ($row = mysql_fetch_assoc($result))
{
$redis->set($row['id'],$row['name']);
$id=$row['id'];$name=$row['name'];
echo "number is <b><font color=#225511>$id</font></b>";
echo "<br>";
echo "name is <b><font color=#225511>$name</font></b>";
echo "<br>";
}
$myserver='mysql';
exit;
}
else
{
$myserver="redis";
$data[$key] = $redis->get($key);
}
}
echo "results from redis";
echo "<hr>";
for ($key = 1;$key < 9;$key++)
{
echo "number is <b> <font color=#FF0000>$key</font></b>";
echo "<br>";
echo "number is <b><font color=#FF000>$data[$key]</font></b>";
echo "<br>";
}
?>
测试
刷新页面