meraproject/module/core/cache/credis/model.php
keboss-m 5c21d25d45 Initial commit: Merakomis portal, Docker stack and user-reader API.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-24 11:04:05 +03:00

174 lines
4.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* Copyright (c) BestWebService.ru
* Author: Gvozdikov Victor Antonovich
* Редактирование кода запрещено. В случае распространения кода обязательно должен сохраняться этот copyright.
* Код распространяется как есть и не даёт гаранитий 100% стабильности. Автор не несёт ответственности за выполнения кода. Все права на код принадлежат Гвоздикову Виктор Антоновичу.
*/
namespace core\cache;
//*
// Показывать ли все ошибки
error_reporting(E_ERROR);
ini_set('display_errors',true);
/*/
ini_set('display_errors','Off');
/**/
class credis {
static $redis;
static function init() {
if(!self::$redis) {
$start = microtime(true);
self::$redis = $r = new \Redis();
$x = $r->connect('127.0.0.1', 6379);
echo '<br><b>ПОдключение к Redis <Br> ' . (microtime(true) - $start) . '</b><br>';
}
}
static function agetone($key,$field){
return self::$redis->hGet($key,$field);
}
static function aget($key){
return self::$redis->hGetAll($key);
}
static function aset($key,$value){
return self::$redis->hMSet($key,$value);
}
static function get($key){
return self::$redis->get($key);
}
static function set($key,$value){
return self::$redis->set($key,$value);
}
}
credis::init();
/*
include_once( $path = \Core::$FOLDER .'/lib/php/predis/autoload.php');
\Predis\Autoloader::register();
class Redis {
static protected $prefix = '';
static public function __include(){}
static protected $redis = null;
static function update_prefix($x){return $x."_update";}
static function needUpdate($key){ $key = self::update_prefix($key);self::set($key,true); }
static function updated($key){ $key = self::update_prefix($key);self::set($key,false); }
static function isNeedUpdate($key){
$key = self::update_prefix($key);
if(self::is($key)) {
return boolval( self::get($key) );
} else return true;
}
static function update($key,$value){
Redis::set($key,$value);
Redis::set(self::update_prefix($key),false);
return $value;
}
static public function is($key){
$res = false;
try {
$res = self::$redis->exists(self::$prefix.$key);
} catch ( Exception $e ) {};
return $res;
}
static public function ais($key,$field){
$res = false;
try {
$res = self::$redis->hexists(self::$prefix.$key,$field);
} catch ( Exception $e ) {};
return $res;
}
static public function aset($key,$value = array()){
try{
$s = self::$redis->hmset(self::$prefix.$key,$value);
} catch ( Exception $e ) {
echo $e->getMessage();
}
return $value;
}
static public function aget($key){
$res = null;
try{
//if(self::is($key)) {
$res = self::$redis->hgetall(self::$prefix.$key);
//}
} catch (Exception $e){$res = null;}
return $res;
}
static public function del($key){
$res = null;
try{
if(self::is($key)) {
$res = self::$redis->del(self::$prefix.$key);
}
} catch (Exception $e){$res = null;}
return $res;
}
static public function set($key,$value){
try {
self::$redis->set(self::$prefix.$key,$value);
} catch (Exception $e) {
}
return $value;
}
static public function get($key){
$res = null;
try {
if(self::is($key)) {
$res = self::$redis->get(self::$prefix.$key);
}
} catch (Exception $e) {}
return $res;
}
public static function init(){
//echo 'init';
try {
self::$prefix = $_SERVER['HTTP_HOST'].":";
self::$prefix = '';
$r = self::$redis = new \Predis\Client();
$r->set('a','b');
/*
if (!$r->isConnected()) {
$r = null;
self::$redis = null;
}
/**/
// This connection is for a remote server
/*
$redis = new PredisClient(array(
"scheme" => "tcp",
"host" => "153.202.124.2",
"port" => 6379
));
//echo 'Удалось соединиться';
}
catch (Exception $e) {
//die(iconv("windows-1251","UTF-8",$e->getMessage()));
//echo 'Не удалось соединиться';
self::$redis = null;
}
}
}
Redis::init();
*/