<?php
namespace app\admin\redis;
use think\cache\driver\Redis;
class RedisClubPool
{
public static $redis = null;
public static $prefix = '';
public static $user_config = 'redis_club_pool';
public static function getDb($roomID)
{
$db = 0;
config(self::$user_config . '.select', $db);
self::$prefix = 'club_pool:' . $roomID . ':';
}
public static function init($roomID)
{
self::getDb($roomID);
if (!self::$redis) {
$options = config(self::$user_config);
if (!extension_loaded('redis')) {
throw new \BadFunctionCallException('not support: redis');
}
if (empty($options)) {
throw new \BadFunctionCallException('not config: redis');
}
self::$redis = new \Redis;
if ($options['persistent']) {
self::$redis->pconnect($options['host'], $options['port'], $options['timeout'], 'persistent_id_' . $options['select']);
} else {
self::$redis->connect($options['host'], $options['port'], $options['timeout']);
}
if ('' != $options['password']) {
self::$redis->auth($options['password']);
}
if (0 != $options['select']) {
self::$redis->select($options['select']);
}
}
return self::$redis;
}
public static function hmget($clubroomID, $fields = [])
{
if (empty($fields)) {
return false;
}
$result = self::$redis->hmget(self::$prefix . $clubroomID, $fields);
return $result;
}
public static function hget($clubroomID, $field)
{
self::init($clubroomID);
return self::$redis->hget(self::$prefix . $field, $field);
}
public static function hgetall($clubroomID, $room_id)
{
self::init($clubroomID);
return self::$redis->hgetall(self::$prefix . $room_id);
}
}
redis长连接与单例
最新推荐文章于 2024-07-11 02:04:14 发布