dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
阅读:921回复:0

[php] redis 类示例

楼主#
更多 发布于:2017-03-01 11:01
目标
1. 使用 phpredis类,操作 redis数据库;
2. 练习 设置key/value,查询,TTL过期时间,删除等基础操作

环境
redis_IP:redis-server
redis_port:6379

代码
cat redis.php
<?php

// manual
// https://github.com/phpredis/phpredis

// smarty class
require_once '../init.php';

$redisHost='redis-server';
$redisPort='6379';

// 初始化 redis对象
$redis = new Redis();

// 创建链接
$conn = $redis->connect($redisHost,$redisPort);
if($conn == FALSE) {
    die("Error, can't connet the redis $redisHost:$redisPort");
}

// 空数组
$array=[];

// 设置 key & value
$key = "name";
$redis->set($key,"dongnan");

// 获取 key 的值
$array['get']  = $redis->get($key);

// 检查 key 是否存在
if($redis->exists($key)) {
    // 追加 key 的值
    $redis->append($key,"'s blog is http://ywwd.net");
    $array['append']  = $redis->get($key);
}

// 设置 key 过期时间
$keyExpire = 60;
$redis->expire($key,$keyExpire);
$array['expire']  = $keyExpire;

// 获得 key 过期时间
sleep(2);
$array['ttl']  = $redis->ttl($key);

// dbsize
$array['size']  = $redis->dbSize();

// 删除 key
if($redis->del($key)) {
    $array['delete']  =  "key: $key 删除完毕
";
}

/*
flush
 *
Remove all keys from all databases.
$redis->flushAll();
 *
 Remove all keys from the current database.
 $redis->fushDB();
 $redis->flushAll();

*/
// server info
// $info = $redis->info();

// close connection
$redis->close();

// 输出到模板引擎
$dong ->assign("title","learn php redis class .");
$dong ->assign("footer","this is footer.");
$dong ->assign("content",$array);
$dong ->display("redis.tpl");

cat ../templates/redis.tpl
<{include "head.tpl"}>
      
<div> Key: 当前的值 <{$content['get']}> </div>
<div> key: 追加后的值 <{$content['append']}> </div>
<div> key: 设置的过期时间为 <{$content['expire']}> 秒 </div>
<div> key: 将在 <{$content['ttl']}> 秒后失效  </div>
<div> 当前redis server 一共存有 <{$content['size']}>  个key </div>
<div> <{$content['delete']}> </div>
<{include "footer.tpl"}>

小结
1. 使用 phpredis扩展提供的redis()类,完成 redis数据库操作;
2. Redis()类,使用面向对象的方式,来完成对 redis数据库操作支持;
    connect()方法,用于创建 redis服务器的链接,失败返回 FALSE;
    set()方法,用于设置key/value;
    get()方法,用于获取value;
    exists()方法,用于检查 key 是否存在;
    expire()方法,用于设置TTL过期时间;
    ttl()方法,用于获取 key 的过期时间;    
    del()方法,用于删除 key;
    close()方法,用于最后关与 redis服务器的链接;
3. smarty 传递数组与变量方式相同;
4. 数组,更便捷方式 [] 替代 array 指令;

请参考:
PhpRedis
PHP 使用 Redis

#
游客

返回顶部