meraproject/module/core/cache/credis/model.php

174 lines
4.9 KiB
PHP
Raw Normal View History

<?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();
*/