讓php Session 存入 redis 配置方法

  • 首先要作的就是安裝redis php

安裝方法:http://redis.io/downloadhtml

Installation
Download, extract and compile Redis with:
$ wget http://download.redis.io/releases/redis-2.8.19.tar.gz
$ tar xzf redis-2.8.19.tar.gz
$ cd redis-2.8.19
$ make
The binaries that are now compiled are available in the src directory. Run Redis with:
$ src/redis-server
You can interact with Redis using the built-in client:
$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

  • 而後是安裝phpredis擴展 redis.songinx

安裝方法參考:http://www.lecloud.net/post/3378834922/install-redis-php-extension-phpredis-withgit

/////////////////////////////
//如下代碼爲參考網站安裝方法,請根據本身的實際安裝位置自由調整,
/////////////////////////////
cd /usr/local
sudo mkdir src
cd /usr/local/src
sudo mkdir phpredis-build
cd phpredis-build
sudo git clone --depth 1 git://github.com/owlient/phpredis.git
cd phpredis
sudo phpize
sudo ./configure
sudo make
sudo make install

cd /usr/local/lib/php5/
sudo gedit php.ini
若是沒有配置 extension_dir 的話請配置到你的extension的路徑
cp redis.so /usr/local/lib/php5/extension/
加入一行: extension = redis.so 
重啓nginx 和 php-fpm 就輸出phpinfo 就能看到redis 擴展安裝完成
  • 設置php.inigithub

找到; session.save_handler = files這一行 ,修改成 session.save_handler = redis,把原來的session存儲方式改微redis方式這樣會提升速度,緣由是redis是在內存讀取必然比在文件讀取要快一些redis

找到; session.save_path = "/tmp"這一行 ,修改成 session.save_path = "tcp://127.0.0.1:8888",這是指向了本地的tcp服務,這個服務一會是由咱們的redis啓動shell

重啓nginx 和 php-fpm 就輸出phpinfo 就能看到session 保存方式和路徑發生了改變session

  • 啓動redis服務tcp

redis-server --port 8888 &
  • 編寫php代碼
    php-fpm

<?php 
header("Content-type:text/html;charset=utf-8");
session_start();//這個很重要

$_SESSION['test_session']= @array('name' =>'fanqie' , 'ccc'=>'hello redis ');

$redis = new redis();
$redis->connect('127.0.0.1', 8888);
echo 'sessionid>>>>>>> PHPREDIS_SESSION:' . session_id();
echo '<br/>';
echo '<br/>';
//redis用session_id做爲key而且是以string的形式存儲
echo '經過php用redis獲取>>>>>>>'.$redis->get('PHPREDIS_SESSION:' . session_id());
echo '<br/>';
echo '<br/>';
echo '經過php用session獲取>>>>>>><br/>';
echo '<pre>';
var_dump($_SESSION['test_session']);
echo '</pre>';
  • 頁面輸出,咱們能夠看出咱們已經成功存儲而且經過redis成功獲取到了存儲的值

sessionid>>>>>>> PHPREDIS_SESSION:fmd75d3dfrlkp43eh567f7dsi5

經過php用redis獲取>>>>>>>test_session|a:2:{s:4:"name";s:6:"fanqie";s:3:"ccc";s:12:"hello redis ";}

經過php用session獲取>>>>>>>
array(2) {
  ["name"]=>
  string(6) "fanqie"
  ["ccc"]=>
  string(12) "hello redis "
}
  • 使用redis客戶端查看在redis庫中已經存儲能夠查詢到hello redis 這條記錄了

dangcheng@dangcheng-pc:~$ redis-cli -p 8888
127.0.0.1:8888> select 0
OK
127.0.0.1:8888> keys *
1) "PHPREDIS_SESSION:fmd75d3dfrlkp43eh567f7dsi5"
127.0.0.1:8888> get PHPREDIS_SESSION:fmd75d3dfrlkp43eh567f7dsi5
"test_session|a:2:{s:4:\"name\";s:6:\"fanqie\";s:3:\"ccc\";s:12:\"hello redis \";}"
127.0.0.1:8888>
相關文章
相關標籤/搜索