將php的session存放到redis裡面

餘二五發表於2017-11-15

通常我們將session儲存到memcached,但是有時候老大讓你將session儲存到Redis怎麼辦,因此有必要了解下如何將session存到redis。


step1、伺服器上需要安裝redis擴充套件(以php7為例)

1
2
3
4
5
6
7
8
# 以安裝php7為例,簡單起見直接安裝了全部的包
yum install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 
php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 
php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64 
php70w-fpm php70w-devel
 
# pecl install redis
# vim /etc/php.ini 加入一行: extension = redis.so



step2、修改php.ini配置

vim /etc/php.ini 相關部分程式碼如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# egrep -v `^;|^$` /etc/php.ini|grep session
 
session.save_handler = redis     # 預設的設定是file,這裡改成redis
 
session.save_path = "tcp://192.168.2.11:6379?auth=passwd" # 這裡填redis的連線配置引數
;session.save_path = "tcp://192.168.2.11:6379"  # 如果redis不帶密碼,則使用這種配置
 
session.use_strict_mode = 0
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID     # 這個名字可以自己改
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5


儲存到redis裡面的keys的名稱是類似 PHPREDIS_SESSIONxxxxxxxxx ,我們只需要連線到redis,並執行 keys PHPREDIS_SESSION* 即可列出全部的sessionkeys

例如:

1
2
3
> keys PHPREDIS_SESSION* 
"PHPREDIS_SESSION:55fsmg64ooebqqaotlue6050g7"
> get "PHPREDIS_SESSION:55fsmg64ooebqqaotlue6050g7"   # 即可檢視到session裡面的資料。


本文轉自 lirulei90 51CTO部落格,原文連結:http://blog.51cto.com/lee90/1886846,如需轉載請自行聯絡原作者


相關文章