Register for your free account! | Forgot your password?

You last visited: Today at 08:00

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Mini-Release]Cache Klasse

Discussion on [Mini-Release]Cache Klasse within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Reply
 
Old   #1
 
NotEnoughForYou's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 3,407
Received Thanks: 2,024
[Mini-Release]Cache Klasse

Hey,

da mich im Urlaub die Langeweile überkommen hat, habe ich mich entschlossen meine Cache Klasse die ich für sogut wie alle meiner datenbankbasierenden Scripte nutze.

PHP Code:
<?php
// Snippet by NE4Y

class Cache {
    
// static variables for the file and the lifetime
    
private static $datei;
    private static 
$zeit;
    private static 
$inhalt;
    private static 
$handle;
    private static 
$dir "cache";
    
    public static function 
cacheAvaible($datei$zeit) {
        
self::$datei $datei;
        
self::$zeit $zeit;
        
        
// checks if the cache exists and the time is not over
        
if(file_exists(self::$dir."/".self::$datei.".txt")) {
           if(
filemtime(self::$dir."/".self::$datei.".txt") > (time() - self::$zeit)) {
               return 
true;
           }
           else {
               return 
false;
           }
       }
       else {
           return 
false;
       }        
    }
    
    public static function 
cacheIt($datei$inhalt) {
          
self::$datei $datei;
          
self::$inhalt $inhalt;
          
          if(
self::$handle fopen(self::$dir."/".self::$datei.".txt""w")) {
              if(
fwrite(self::$handleself::$inhalt)) {
                  
fclose(self::$handle);
                  return 
true;
              }
              else {
                  return 
false;
              }
          }
           else {
               return 
false;
           }
    }
    
    public static function 
getCreateTime($datei) {
        
self::$datei $datei;
        
        return 
date("H:i d.m.Y"filemtime(self::$dir."/".self::$datei.".txt"));
    }
}
?>
Es sollte eigentlich jedem klar sein, was man damit machen kann.

Möglicher Aufruf:
PHP Code:
Cache::cacheIt("status""lalala");
Cache::cacheAvaible("status"8400);
echo 
Cache::getCreateTime("status"); 
mfg
NotEnoughForYou is offline  
Thanks
8 Users
Old 09/01/2012, 18:30   #2
 
Lewfire's Avatar
 
elite*gold: 30
Join Date: Jan 2012
Posts: 1,893
Received Thanks: 2,036
YEY! Danke :*
Lewfire is offline  
Old 09/01/2012, 18:33   #3
 
ηєσχ's Avatar
 
elite*gold: 53
Join Date: Feb 2009
Posts: 2,040
Received Thanks: 617
super von dir
ηєσχ is offline  
Old 09/01/2012, 18:34   #4
 
elite*gold: 17
Join Date: Jan 2009
Posts: 2,538
Received Thanks: 2,405
nice , aber ich glaube kaum das jeder hier weis was es ist, da einfach nicht jeder die php kentnisse hat ( was auch nicht notwendig ist ).
Perfection- is offline  
Thanks
3 Users
Old 09/01/2012, 18:36   #5
 
.Aza''s Avatar
 
elite*gold: 0
The Black Market: 110/0/3
Join Date: Jan 2012
Posts: 7,868
Received Thanks: 7,712
Ich zB weis es nicht wirklich^^ Ich kann mir zwar was darunter vorstellen, aber richtig ahnung hab ich davon nicht.

Könntest es vll erklären?
.Aza' is offline  
Thanks
1 User
Old 09/01/2012, 18:36   #6
 
NotEnoughForYou's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 3,407
Received Thanks: 2,024
Quote:
Originally Posted by .Xero View Post
nice , aber ich glaube kaum das jeder hier weis was es ist, da einfach nicht jeder die php kentnisse hat ( was auch nicht notwendig ist ).
ist auch eig. für die Leute die neue Scripts schreiben. Ist ja eh nichts großes was man eig auch selber schnell geschrieben hat, aber hatte schon so lange nichts mehr released . Wenn man auch nicht gerade alles Selected und einigermaßen vernünftig codet und keine 4000 Leute auf seiner Seite hat kommt man auch ohne aus nur so gehts dann schneller


@canyx:

damit kann man Inhalte cachen. Zb. die Rangliste. Dann wird nur alle 24h oder 12 oder wie man es will die Rangliste aktualisiert --> also auch nur alle 24 / 12 / whatever der Request an die DB gestellt --> spart Mysql Ressourcen --> läd schneller
NotEnoughForYou is offline  
Thanks
3 Users
Old 09/01/2012, 19:23   #7
 
elite*gold: 20
Join Date: Jan 2012
Posts: 573
Received Thanks: 366
geht doch auch mit cloudflare ?
'Roccat™ is offline  
Old 09/01/2012, 19:35   #8

 
Aze /..'s Avatar
 
elite*gold: 220
Join Date: Oct 2011
Posts: 7,369
Received Thanks: 7,610
Cool, geile Sache ^^
Aze /.. is offline  
Old 09/01/2012, 19:40   #9
 
Harky-D's Avatar
 
elite*gold: 30
Join Date: Mar 2012
Posts: 522
Received Thanks: 263
Nice danke dir! :-)
Harky-D is offline  
Old 09/01/2012, 19:47   #10

 
IgorGlock's Avatar
 
elite*gold: 1862
Join Date: Jan 2009
Posts: 3,725
Received Thanks: 7,671
Ich weiß nicht ob solch' Cache überhaupt was bringt.
Ich mein, MySQL Datenbank ist dafür gut und nicht txt Datenbank. Je nach Nutzung kann aber txt "Zwischenspeicher" gut sein, doch nicht für Metin2.
IgorGlock is offline  
Thanks
1 User
Old 09/01/2012, 19:52   #11

 
iSouli~'s Avatar
 
elite*gold: 69
Join Date: Feb 2011
Posts: 1,385
Received Thanks: 3,402
Quote:
Originally Posted by IgorGlock View Post
Ich weiß nicht ob solch' Cache überhaupt was bringt.
Ich mein, MySQL Datenbank ist dafür gut und nicht txt Datenbank. Je nach Nutzung kann aber txt "Zwischenspeicher" gut sein, doch nicht für Metin2.
Also auf Zephion / Alzoria hat es perfekt funktioniert bei bis zu 1000 Spielern.

#die offiziellen Server machen es doch auch so
iSouli~ is offline  
Old 09/01/2012, 20:27   #12

 
elite*gold: 0
Join Date: Feb 2008
Posts: 2,754
Received Thanks: 1,748
Quote:
Originally Posted by IgorGlock View Post
Ich weiß nicht ob solch' Cache überhaupt was bringt.
Ich mein, MySQL Datenbank ist dafür gut und nicht txt Datenbank. Je nach Nutzung kann aber txt "Zwischenspeicher" gut sein, doch nicht für Metin2.
Wenn du denn nicht weißt, ob sowas überhaupt was bringt dann tu mir doch den gefallen und frag davor nach oder geh googeln, bevor du irgendwelche Behauptungen ohne Hand und Fuß in die Welt setzt.

Wenn man einen externen MySQL-Server hat, welcher wirklich die komplette Last aushält dann ist eine Non-Caching Variante die bessere Wahl. Da das bei Metin2 aber nur seltenst der Fall ist, sollte man auf Caching auf jeden Fall zurückgreifen.
Im optimalsten Falle hat man dann eine SSD verbaut, so dass man das meiste aus dem Vorgang rausholen kann.
Will man das ganze noch ein wenig schneller (und besser), so sollte man das memcache-Modul laden.
Wenn man alles richtig in Verbindung miteinander setzt, kann man sogar die Ladezeit der Homepage (je nach SQL-Server und größe der Bilder darauf) um 5-15% beschleunigen, da die Datenbankabfragen deutlich weniger werden und die Ergebnisse durch das Caching schneller geliefert werden können.

Und wie mein Vorposter schon gesagt hat, auch offizielle Server und viele große Seiten benutzen Caching da die SQL-Serverlast sonst einfach zu groß wird.
Computerfreek is offline  
Old 09/01/2012, 20:37   #13
 
iYoshix3's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 1,264
Received Thanks: 2,019
Wenn man nen guten MySql Server hat, braucht man das eig garnicht.
Würde es evntl. nur für die Rangliste nützlich finden.

Mfg
iYoshix3 is offline  
Old 09/01/2012, 21:09   #14
 
elite*gold: 0
Join Date: Nov 2009
Posts: 875
Received Thanks: 278
Wie es der Computerfreek beschrieben und eklärt hat stimmt alles!
Wieso sollte man unnötig Resourcen verbrauchen wenn man sie "sparen" kann wenn überhaupt?
Whit3W0lf is offline  
Thanks
1 User
Old 09/01/2012, 22:12   #15

 
IgorGlock's Avatar
 
elite*gold: 1862
Join Date: Jan 2009
Posts: 3,725
Received Thanks: 7,671
Metin2 Rangliste Cachen => JA
Rest wie z.B.: Account Name, Löschcode, Email, Vorname und i-was noch lohnt sich nicht zu cachen.
Was sich lohnt zu Cachen sind die Statistiken wie z.B.: Userzahlen, Itemsanzahlen etc..
Im Henniks Admin Panel lohnt es sich noch im Charakteransicht die Informationen zu zwischenspeichern, dann aber nur 1x am Tag höchstens die Seite aufgerufen wird, macht das ja auch kein Sinn.

Sinn ist nur bei: komplexen Abfragen mit Resultat den man öfter die Stunde braucht und der nicht unbedingt bei jeden Klick geladen werden muss.

Webserver sind selten mit SSD ausgestattet, daher würde ich lieber die Festplatte des Webservers eher schonen und die Datenbank dafür lieber knallen, dafür ist(sollte) der MySQL Server ja auch ausgelegt sein, das von Hardware sich von Webserver unterscheidet.

Also Metin2Kinder, geht eure 0815 Webserver ertränken.
IgorGlock is offline  
Reply


Similar Threads Similar Threads
[WTB] unded mini ghostly/mini panada/mini polar bear
05/07/2012 - Guild Wars Trading - 2 Replies
Hi, Would like to buy one of those pets. Make me an offer if you got one. Thanks.
Mini[Mini-Release] Blanke Mob_drop_item
12/14/2011 - Metin2 PServer Guides & Strategies - 4 Replies
Ich lad hier mal ne komplett blanke mob_drop_item hoch. Alle Mobs sind noch drin , aber alle Drops entfernt. Für die "Faulen" bestimmt ein bisschen hilfreich :).
[mini mini Release] Warning for IE for heni script
09/19/2011 - Metin2 PServer Guides & Strategies - 14 Replies
this is nothing special I just i see a lots of people have troubles with the Internet Explorer browser on the almost all HP have be release on epvp so i will explain a bether way to warning the user he is using the internet explorer and you recomend use firefox or chrone without using enterpage 1 put this code inside the <head> </head> tag <!--> <script type="text/javascript">
[Release] Cache Crasher
04/18/2011 - Flyff PServer Guides & Releases - 31 Replies
Da Kyubi sein (in meinen Augen) schwaches Tool zum crashen des Cache Server released hat, release ich mal ein Tool von Jojo und mir, welches mit glück nicht nur den Cache lahmlegt. Dieses Programm ist Komplett in C++ und der Starter/Kill für den Spammer in VB (rein der Form her), da man sons das Ding nicht mehr unter kontrolle bekommen würde. Ich erkläre mal kurz das was ihr da machen könnt und was zu was ist: => CSpam.exe -> Damit könnt ihr den Spammer nach wunsch starten und killen (min:...



All times are GMT +2. The time now is 08:00.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.