<?php
class myRedis
{
public static $singleInstance; // 保存对象
public static $_redis; // 保存对象
private function __construct(){
// 私有构造函数,禁止外部实例化
}
private function __clone(){
// TODO: Implement __clone() method.
}
/**
* 唯一方法获取对象实例
* @return myRedis
*/
public static function getInstance()
{
if (!self::$singleInstance) {
self::$singleInstance = new self();
}
return self::$singleInstance;
}
/**
*获取redis对象
* @return Redis
*/
public static function getRedis(){
if (!self::$_redis) {
self::$_redis = new Redis();
self::$_redis->connect(REDIS_HOST, REDIS_PORT); // host和port参数可以自己配置,获取方式自定
}
return self::$_redis;
}
/**
* 添加有生命周期的锁
* @param string $key
* @param string $value
* @param int $expire
* @return bool
*/
public function addLock($key = '', $value = '', $expire = 60){
$_redis = self::getRedis();
return $_redis->set($key, $value, $expire);
}
/**
* 获取锁
* @param $key
* @return bool|string
*/
public function getLock($key){
return self::getRedis()->get($key);
}
/**
* 剩余生命周期
* @param $key
* @return int
*/
public function remainLockExpire($key){
return self::getRedis()->ttl($key);
}
/**
* 释放锁
* @param String $key 锁标识
* @return Boolean
*/
public function unlock($key){
return self::getRedis()->del($key);
}
}
网友评论