diff --git a/index-wp-redis.php b/index-wp-redis.php
index 290d7cb06147ed8c97d5ccccc28a20e3208757ee..adda90ef03662048513f05280600ce875e538b36 100644
--- a/index-wp-redis.php
+++ b/index-wp-redis.php
@@ -1,32 +1,51 @@
 <?php
 
+// Start the timer so we can track the page load time
+$start = microtime();
+
+function getMicroTime($t)
+{
+    list($usec, $sec) = explode(" ", $t);
+    return ((float) $usec + (float) $sec);
+}
+
 $seconds_cache_redis = 60 * 60 * 12; // 12 hours by default, you can change in this in wp-admin options page
-$ip_of_your_website  = '64.90.38.145'; //You must set this to the IP of your website
+$ip_of_your_website  = '127.0.0.1'; //You must set this to the IP of your website
 $secret_string       = "changeme";
 /*This is if you want to manually refresh the cache
 ex: http://example.com/sample-post?refresh=changeme    */
 
-
 // so we don't confuse the cloudflare server 
 if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
     $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];
 }
 
 define('WP_USE_THEMES', true);
-
-// Start the timer so we can track the page load time
-$start = microtime();
-
-include("wp-content/plugins/wp-redis-cache/predis5.2.php"); //we need this to use Redis inside of PHP
-$redis = new Predis_Client();
-
 $current_url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
 $current_url = str_replace("?refresh=$secret_string", '', $current_url); //clean up the URL
 $current_url = str_replace("&refresh=$secret_string", '', $current_url);
-$redis_key   = md5($current_url);
+$redis_key = md5($current_url);
+
+try {
+	// check if PECL Extension is available
+	if (class_exists('Redis')) {
+		$redis = new Redis();
+		
+		// Sockets can be used as well '/tmp/redis.sock'
+		// documentation can be found at https://github.com/nicolasff/phpredis/#connection
+		$redis->connect('127.0.0.1');
+		
+	} else // Fallback to predis5.2.php
+	{
+		include("wp-content/plugins/wp-redis-cache/predis5.2.php"); //we need this to use Redis inside of PHP
+		$redis = new Predis_Client();
+	}
+} catch (Exception $e) {
+	$redisError=true;
+}
 
 //Either manual refresh cache by adding ?refresh=secret_string after the URL or somebody posting a comment
-if (isset($_GET['refresh']) || $_GET['refresh'] == $secret_string || ($_SERVER['HTTP_REFERER'] == $current_url && $_SERVER['REQUEST_URI'] != '/' && $_SERVER['REMOTE_ADDR'] != $ip_of_your_website)) {
+if (!isset($redisError) && (isset($_GET['refresh']) || $_GET['refresh'] == $secret_string || ($_SERVER['HTTP_REFERER'] == $current_url && $_SERVER['REQUEST_URI'] != '/' && $_SERVER['REMOTE_ADDR'] != $ip_of_your_website))) {
     
     $redis->del($redis_key);
     require('./wp-blog-header.php');
@@ -66,10 +85,7 @@ if (isset($_GET['refresh']) || $_GET['refresh'] == $secret_string || ($_SERVER['
         require('./wp-blog-header.php');
     }
     
-    
-    
-    
-} else if ($_SERVER['REMOTE_ADDR'] != $ip_of_your_website && strstr($current_url, 'preview=true') == true) {
+} else if (($_SERVER['REMOTE_ADDR'] != $ip_of_your_website && strstr($current_url, 'preview=true') == true) || isset($redisError)) {
     require('./wp-blog-header.php');
 }
  // else {   // This is what your server should get if no cache exists  //depricated, as the ob_start() is cleaner
@@ -84,14 +100,3 @@ if ($_SERVER['REMOTE_ADDR'] != $ip_of_your_website) {
     $time = (@getMicroTime($end) - @getMicroTime($start));
     echo "<!-- Cache system by Benjamin Adams. Page generated in " . round($time, 5) . " seconds. -->";
 }
-
-
-function getMicroTime($t)
-{
-    list($usec, $sec) = explode(" ", $t);
-    return ((float) $usec + (float) $sec);
-}
-
-
-
-?>