Redis服务类
/**
* Redis服务类
*/
class RedisService {
private static $redis;
/**
* 获取Redis实例
* @param string $host Redis主机名
* @param int $port Redis端口号
* @param string $password Redis密码
* @return Redis
*/
public static function getInstance($host, $port, $password) {
if (!self::$redis) {
self::$redis = new Redis();
self::$redis->connect($host, $port);
if ($password) {
self::$redis->auth($password);
}
}
return self::$redis;
}
/**
* 设置缓存
* @param string $key 缓存键
* @param mixed $value 缓存值
* @param int $expire 过期时间(秒)
* @return bool
*/
public static function set($key, $value, $expire = 0) {
if ($expire) {
return self::$redis->setex($key, $expire, $value);
} else {
return self::$redis->set($key, $value);
}
}
/**
* 获取缓存
* @param string $key 缓存键
* @return mixed
*/
public static function get($key) {
return self::$redis->get($key);
}
/**
* 删除缓存
* @param string $key 缓存键
* @return bool
*/
public static function delete($key) {
return self::$redis->del($key);
}
/**
* 判断缓存是否存在
* @param string $key 缓存键
* @return bool
*/
public static function exists($key) {
return self::$redis->exists($key);
}
/**
* 自增
* @param string $key 缓存键
* @param int $value 自增值
* @return int
*/
public static function incr($key, $value = 1) {
return self::$redis->incrby($key, $value);
}
/**
* 自减
* @param string $key 缓存键
* @param int $value 自减值
* @return int
*/
public static function decr($key, $value = 1) {
return self::$redis->decrby($key, $value);
}
/**
* 关闭连接
*/
public static function close() {
self::$redis->close();
}
/**
* 设置hash值
* @param string $key 缓存键
* @param string $field 域
* @param mixed $value 值
* @return bool
*/
public static function hset($key, $field, $value) {
return self::$redis->hset($key, $field, $value);
}
/**
* 获取hash值
* @param string $key 缓存键
* @param string $field 域
* @return mixed
*/
public static function hget($key, $field) {
return self::$redis->hget($key, $field);
}
/**
* 删除hash值
* @param string $key 缓存键
* @param string $field 域
* @return bool
*/
public static function hdel($key, $field) {
return self::$redis->hdel($key, $field);
}
/**
* 设置list值
* @param string $key 缓存键
* @param mixed $value 值
* @return int
*/
public static function lpush($key, $value) {
return self::$redis->lpush($key, $value);
}
/**
* 获取list值
* @param string $key 缓存键
* @param int $start 开始位置
* @param int $end 结束位置
* @return array
*/
public static function lrange($key, $start, $end) {
return self::$redis->lrange($key, $start, $end);
}
/**
* 删除list值
* @param string $key 缓存键
* @param mixed $value 值
* @param int $count 删除数量
* @return int
*/
public static function lrem($key, $value, $count = 0) {
return self::$redis->lrem($key, $value, $count);
}
/**
* 设置set值
* @param string $key 缓存键
* @param mixed $value 值
* @return int
*/
public static function sadd($key, $value) {
return self::$redis->sadd($key, $value);
}
/**
* 获取set值
* @param string $key 缓存键
* @return array
*/
public static function smembers($key) {
return self::$redis->smembers($key);
}
/**
* 删除set值
* @param string $key 缓存键
* @param mixed $value 值
* @return int
*/
public static function srem($key, $value) {
return self::$redis->srem($key, $value);
}
/**
* 设置zset值
* @param string $key 缓存键
* @param mixed $value 值
* @param float $score 分数
* @return int
*/
public static function zadd($key, $value, $score) {
return self::$redis->zadd($key, $score, $value);
}
/**
* 获取zset值
* @param string $key 缓存键
* @param int $start 开始位置
* @param int $end 结束位置
* @param bool $withscores 是否返回分数
* @return array
*/
public static function zrange($key, $start, $end, $withscores = false) {
return self::$redis->zrange($key, $start, $end, $withscores);
}
/**
* 删除zset值
* @param string $key 缓存键
* @param mixed $value 值
* @return int
*/
public static function zrem($key, $value) {
return self::$redis->zrem($key, $value);
}
}
// 使用示例
$redisService = new RedisService();
$redisService->connect('127.0.0.1', 6379, 'password');
$redisService->set('name', 'Redis');
echo $redisService->get('name');
$redisService->delete('name');
$redisService->close();