一、开启 redis,并编写脚本

### --- 开启 redis,并编写脚本

[root@server21 ~]# ln -s /usr/local/redis/bin/* /usr/local/bin/
### --- 配置后台启动

[root@server21 ~]# vim /usr/local/redis/redis.conf
daemonize yes

[root@server21 ~]# redis-server /usr/local/redis/redis.conf
[root@server21 ~]# netstat -antp |grep 6379
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 7384/redis-server *
tcp 0 0 :::6379 :::* LISTEN 7384/redis-server *
### --- 将PHP脚本页面放至网页的访问目录下

[root@server21 ~]# vim redis-mysql.php

<?php
ini_set("display_errors", "On");
error_reporting(E_ALL | E_STRICT);
# 开启debug


# mysql 库: mytest 表:test
$redis = new redis();
<?php
ini_set("display_errors", "On");
error_reporting(E_ALL | E_STRICT);
# 开启debug


# mysql 库: mytest 表:test
$redis = new redis();
$redis->connect('127.0.0.1',6379);
$query = "select * from test limit 5";
for ($key=1;$key<=5;$key++)
{
if (!$redis->get($key))
# 判断redis中是否有1 2 3 4 5 的键,没有连接数据库查询mytest库的test表,然后插入到redis中
{
$connect = mysql_connect('127.0.0.1','root','123456');
mysql_select_db(mytest);
$result = mysql_query($query);
var_dump ($result);
while ($row = mysql_fetch_assoc($result))
{
$redis->setex($row['id'],30,$row['name']);
# 从MySQL中获取的资源插入到redis中,并设置有效时间为30s
}
$myserver = 'mysql';
break;
}
else
# 判断redis中是否有1 2 3 4 5 的键,有直接打印redis中的 1 2 3 4 5 键的值。
{
$myserver = "redis";
$data[$key] = $redis->get($key);
}
}
echo $myserver;
echo "<br>";
for ($key=1;$key<=5;$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>";
}
?>
### --- 将发布页面放至网页访问目录下

[root@server21 ~]# cp -a redis-mysql.php /www/redis.php
### --- 通过Chrome访问http://20.20.20.21/redis.php输出如下内容
~~~ 第一次访问的时候,Redis是没有数据的,从数据库里面调取到数据
~~~ http://20.20.20.21/redis.php

Notice: Use of undefined constant mytest - assumed 'mytest' in /www/redis.php on line 17 resource(4) of type (mysql result) mysql
number is 1
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 2
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 3
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 4
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 5
Notice: Undefined variable: data in /www/redis.php on line 41 name is

二、验证 php 访问 redis 和 mysql

### --- 再次刷新获取到Redis数据

http://20.20.20.21/redis.php
redis
number is 1
name is a1
number is 2
name is a2
number is 3
name is a3
number is 4
name is a4
number is 5
name is a5
### --- 30秒之内查询数据都是从Redis里面获取数据,30秒之后,
~~~ 数据失效,回到初始页面;就需要从数据库里面再次获取数据,
~~~ 向Redis里面再插入一份。30秒提高了数据的一致性问题。

Notice: Use of undefined constant mytest - assumed 'mytest' in /www/redis.php on line 17 resource(4) of type (mysql result) mysql
number is 1
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 2
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 3
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 4
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 5
Notice: Undefined variable: data in /www/redis.php on line 41 name is
redis
number is 1
name is a1
number is 2
name is a2
number is 3
name is a3
number is 4
name is a4
number is 5
name is a5











Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart

                                                                                                                                                   ——W.S.Landor