It sounds as if you've decided how to proceed, in which case I'd suggest looking into the most efficient method to manage your list. "Sharing" it across sessions I've not encountered (who do not share sessions for security reasons, or shouldn't). You've nixed redis.io and Memcached as too complicated. 

One way you could do this, and minimize it's impact in efficiency, would be to setup a CRON or configure some workers to periodically run a script that outputs the contacts table to a PHP-parseable file.

For instance:

&lt;?php

// Let's not run this if the app isn't accessing it.
if (!defined('APP_RUNNING_CONST')) {
    header('HTTP/1.1 401');
    exit;
}

$contacts = $db-&gt;query()... // Get the contacts list.
$lines = array();
$num_contacts = $contacts-&gt;getRows();

while ($contact = $contacts-&gt;nextRow()) {
    $contact-&gt;field-&gt;contactname = addslashes($contact-&gt;field-&gt;contactname);

    array_push($lines, "\$contacts['$contact-&gt;field-&gt;phone'] =&gt; '$contact-&gt;field-&gt;name';");
}

if (!empty($lines)) {
    $o_array = implode(PHP_EOL, $lines);
    $c_date = date('r');

    $o_array = "&lt;?php

// CRON contact table cache to array
// Saved $c_date by __file__
// Number rows: $num_contacts

$contacts = array();
$o_array

";
}

// Write the PHP file over the last:
$contactsfilename = 'contacts.php' ...


Then all you need to do is 

include '/secure/lists/contacts.php';


in the pages you need it. You should be careful how you replace the file (copy, save and delete when finished) as well. 

Some other improvements you could make might be to output files for each area code/prefix....

contacts.403.555.inc.php
contacts.403.585.inc.php
contacts.461.550.inc.php


And then create a function to autoload the appropriate file group only as you need them ("lazy loading") and use static variables to keep the references in the function. This also overcomes the global variable problem, as well as helps keep the functional code accessing the files in a central place. Of course you could use a class, maybe with an array interface implementation.

Anyhow, yet another option could be to use a ini file format.

What's a better method, using Large Array vs SQL Joins?
I want to know how can I set up bit torrent client on my web server, I found this article http://www.cyberciti.biz/tips/linux-command-line-bittorrent-client.html 

but http://download.bittorrent.com/dl/bittorrent_5.0.3_python2.4.deb now does not exists, my Python version is 2.6 on ubuntu 10.04, I searched for bittorrent version that suits with my python version but no results.

Any one know how can I do this? Is there any other way to do this?
