php+redis封装一个可以保存数组+html的类
时间: 2023-05-28 12:03:40 浏览: 71
以下是一个简单的 PHP Redis 类,可以用来保存数组和 HTML 数据:
```php
class RedisHelper {
private $redis;
public function __construct($host = '127.0.0.1', $port = 6379) {
$this->redis = new Redis();
$this->redis->connect($host, $port);
}
public function set($key, $value) {
if (is_array($value)) {
$value = json_encode($value);
}
return $this->redis->set($key, $value);
}
public function get($key) {
$value = $this->redis->get($key);
if ($value && strpos($value, '{') === 0) {
$value = json_decode($value, true);
}
return $value;
}
public function setHtml($key, $html) {
return $this->set($key, base64_encode($html));
}
public function getHtml($key) {
$value = $this->get($key);
if ($value) {
$value = base64_decode($value);
}
return $value;
}
}
```
使用示例:
```php
$redis = new RedisHelper();
// 保存数组数据
$data = array('name' => 'John', 'age' => 30);
$redis->set('user:1', $data);
$user = $redis->get('user:1');
echo $user['name']; // 输出 John
// 保存 HTML 数据
$html = '<h1>Hello World</h1>';
$redis->setHtml('page:1', $html);
$page = $redis->getHtml('page:1');
echo $page; // 输出 <h1>Hello World</h1>
```
本示例中,我们使用了 PHP 内置的 `json_encode()` 和 `json_decode()` 函数将数组转换为字符串,并在保存到 Redis 中时进行判断和处理。对于 HTML 数据,我们使用了 base64 编码来避免 Redis 的字符串格式限制。