Let’s briefly talk about one of the SESSION synchronization solutions in the distributed deployment of PHP projects, using Memcache to store SESSION. And summarized three configuration methods, friends in need can refer to it
1. Directly modify the php.ini configuration file
The code is as follows:
session.save_handler = memcache //Set the session storage method to memcache
memcache.hash_strategy = "consistent"//Set the hash algorithm of memcache
session.save_path = "tcp://127.0.0.100:11211" //Set the location where the session is stored. Multiple memcaches are separated by commas, for example: tcp://127.0.0.1:11211,tcp:// 127.0.0.1:12000
2. Use the .htaccess file configuration in the directory
The code is as follows:
php_value session.save_handler "memcache"
php_value session.save_path "tcp://127.0.0.1:11211"
Note: This is only for Apache. Currently, many people use Nginx, and this method is not recommended.
3. Modify the configuration in the project’s PHP file
Copy the code. The code is as follows: ini_set("session.save_handler", "memcache");
ini_set("session.save_path", "tcp://127.0.0.100:11211");
4. Test example
The code is as follows:
//Test whether session reading is normal
session_start();
$_SESSION['username'] = "jb51.net";
echo session_id();
//Read session from Memcache
$m = new Memcache();
$m->connect('localhost', 11211);
//Or like this
//$mem->addServer("127.0.0.1", 11211) or die ("Can't add Memcache server 127.0.0.1:12000");
//Get data based on session_id
//This machine
//$session = $m->get(session_id()); //session_id: d527b6f983bd5e941f9fff318a31206b
//Another server, known session id
$session = $m->get("d527b6f983bd5e941f9fff318a31206b");
echo $session."
"; //You will get such data: username|s:16:"pandao";, you can get the corresponding value after parsing it
echo session_id()."
";
exit;
The above are just some simple explanations. In fact, to digress, generally speaking, if you want to do distributed work, you must have server permissions, so the first method is recommended.