入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

浅谈php的缓存机制之redis

创建时间:2015-07-09 投稿人: 浏览次数:109

适合刚学习redis的读读,直接上代码吧,全是基础,全有注释

<?php 
$redis = new redis();
$redis->connect("127.0.0.1", 6379);
//设置twjteststring
$redis->setex("twjteststring","300","test string title content");
$twjteststring = $redis->get("twjteststring");
echo "string<br/>";
print_r($twjteststring);
echo "<hr/><br/>";
//设置hash
echo "hash<br/>";
$redis->hSet("testhash","name","twj");
$redis->hSet("testhash","age",25);
//删除testhash中的age
$redis->hDel("testhash","age");
$redis->hSetNx("testhash","age",24);//如果已经存在,则不操作。若未设置,则赋值
//hMset可以直接设置数组,数组中如果存在已经定义的元素,会覆盖掉
$redis->hMset("testhash",array("sex"=>"男","home"=>"山东省武松打虎故乡","name"=>"twj2"));
$redis->hSet("testhash","home","山东省");
echo $redis->zCount("testhash",0,3);
//hMget可以根据多个键取对应的值,返回值是键值形式的数组
$hashnamesex = $redis->hMget("testhash",array("name","age"));
print_r($hashnamesex);
//根据特定单个键取值
$hashname = $redis->hGet("testhash","name");
echo $hashname."<br/>";
//取出所有的键
$hashallkey = $redis->hKeys("testhash");
print_r($hashallkey);
//取出所有的值
$hashallvalue = $redis->hVals("testhash");
print_r($hashallvalue);
//hgetall获取hash的键值
$hasharr = $redis->hgetall("testhash");
print_r($hasharr);
echo "<hr/><br/>";
//$redis->delete("testhash");//删除testhash
//与数据库关联
$mysql = new PDO("mysql:host=localhost;dbname=blog","root","",array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); 
$rs = $mysql -> query("select title,content from tbl_post limit 10");
$i=0;
while($row = $rs -> fetch()){
    $rows[$i]["title"]=$row["title"];
    $rows[$i]["content"]=$row["content"];
    $i=$i+1;
}
$redisrows = json_encode($rows);
$redis->setex("blog","300",$redisrows);
$blog = $redis->get("blog");
print_r(json_decode($blog));
//$redis->delete("blog");
$redis->hSet("blog2","data",$redisrows);
$blog2 = $redis->hGet("blog2","data");
print_r(json_decode($blog2));
$redis->expire("testhash",300);
$redis->expire("blog2",300);//过期时间
//$redis->delete("blog2");
//$redis->delete("testhash");
//$redis->delete("blog2");
//zset与hash结合使用比较方便
$redis->zAdd("zset",0,"test0content");
$redis->zAdd("zset",1,"test1content");
$redis->zAdd("zset",3,"test3content");
$redis->zAdd("zset",2,"test2content");
$redis->zAdd("zset",4,"test4content");//zAdd(key,score,value)score只能为数字,当value相同时候,会覆盖掉score
$zset = $redis->zRange("zset",0,2);//返回zadd数组
echo "<br/><hr/>zset";
print_r($zset);
//$redis->delete("zset");
?>
对于那些用windows的wamp集成环境没有装上redis的也可以找我。

联系qq:274501366

代码很基础,转载请注明。

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。