①.、php操作第一步就是要安装对应的扩展.在Windows环境下则是对应的.dll文件.Windows环境下由于编译环境不同,对应扩展在选择的时候需要注意当前php的先关信息.可以通过phpinfo()查看.如果可以看到对应的环境,这在选择扩展的时候有用
②.、选择对应PHP环境扩展
测试例子
①.、扩展安装成功之后需要验证下是否可以用.web服务器目录下创建文件输入下面内容:
php
$redis = new Redis();
$redis-set('test','hello redis');
echo $redis-get('test');
②.、然后在网页上访问,如果有hello redis输入则表示扩展安装成功.
使用Redis的脚本功能实现Redis中数据简单查询,有需要的朋友可以参考下. 在Redis的设计中,key是一切,对于Redis是可见的,而value对于Redis来说就是一个字节数组,Redis并不知道你的value中存储的是什么
开始在
PHP
中使用
Redis
前,要确保已经安装了
redis
服务及
驱动,且你的机器上能正常使用
PHP.
PHP安装redis扩展
/usr/local/php/bin/phpize
#php安装后的路径
./configure
--with-php-config=/usr/local/php/bin/php-config
make
install
修改php.ini文件
vi
/usr/local/php/lib/php.ini
增加如下内容:
extension_dir
=
extension=redis.so
安装完成后重启php-fpm
或
apache.查看phpinfo信息,就能看到redis扩展.
连接到
服务
//连接本地的
$redis
new
Redis();
echo
"Connection
to
server
sucessfully";
//查看服务是否运行
"Server
is
running:
"
.
$redis-ping();
执行脚本,输出结果为:
Connection
sucessfully
Server
PONG
String(字符串)
实例
//设置
字符串数据
$redis-set("tutorial-name",
"Redis
tutorial");
//
获取存储的数据并输出
"Stored
string
in
redis::
jedis.get("tutorial-name");
Stored
tutorial
List(列表)
//存储数据到列表中
$redis-lpush("tutorial-list",
"Redis");
"Mongodb");
"Mysql");
$arList
$redis-lrange("tutorial-list",
print_r($arList);
Mongodb
Mysql
Keys
获取数据并输出
$redis-keys("*");
keys
tutorial-name
tutorial-list
对于大访问量的站点使用默认的Session 并不合适,我们可以将其存入数据库、或者使用Redis KEY-VALUE数据存储方案
首先新建一个session表
CREATE TABLE ◆sessions◆ (
UNIQUE KEY ◆sid◆ (◆sid◆) USING HASH
Mysql 的memory引擎采用内存表,所有数据存储在内存,操作速度快
复制代码
//引入数据库文件
include "db.php";
class MySessionHandler implements SessionHandlerInterface
{
private $savePath;
private $sessData;
public $expiretime; //设置过期时间
public $db; //数据库
public function __construct($hanlder =''){
$this-db = Database::getInstance();
//获取数据库实力
///var_dump($this-db);
}
public function open($savePath, $sessionName)
return true;
public function close()
public function read($id)
$sql ="select * from sessions where sid ='$id'";
$result = $this-db-execute($sql);
if(!empty($result)){
return $this-sessData = $result;
//函数的参数 $id - 当前会话ID
//数据DATA - 序列化之后的字符串
public function write($id, $data)
// echo $id;
// echo $data;
$now = time();
$newExp = $now◆$this-expiretime; //总时间=当前时间 ◆ 期限时间
$sql = "select * from sessions where sid ='$id'";
$result = $this-db-getOne($sql);
//var_dump($result);
if($data==''||isset($data)){
$data = $this-sessData;
if($result){
//如果存在则更新
$sql ="update sessions set updatetime = '$newExp',data ='$data' where sid = '$id'";
//echo $sql;
$update_data =$this-db-execute($sql);
if($update_data){
}else{
//不存在则生成生成
$sql = "insert into sessions(sid,updatetime,data) values('$id','$now','$data')";
$insert_data = $this-db-execute($sql);
if($insert_data){
return false;
public function destroy($id)
{ //销毁
$sql = "delete from sessions where sid="."$id";
$destory = $this-db-execute($sql);
if($destory){
public function gc($sessMaxLifeTime)
$t = time();
$sql ="delete from sessions where $t - 'updatetime'${sessMaxLifeTime}";
$data = $this-db-execute($this-tosql);
if($data){
实例化
此处 PHP 手册可以有两种方法
②. ,直接使用 session_set_save_handler
//判断PHP版本
session_set_save_handler($handler, true);
session_start();
ini_set('session.use_trans_sid',0);
ini_set('session.use_cookies',1);
ini_set('session.cookie_path','/');
ini_set('session.save_handler','user');
session_module_name('user');
session_set_save_handler(array($session,"open"),array($session,"close"),array($session,"read"),array($session,"write"),array($session,"destory"),array($session,"gc"));
$_SESSION['QQ']="QQ";
echo $_SESSION['QQ'];
数据库代码 db.php
class Database{
static $instance;
static $db;
static function getInstance(){
if(self::$instance){
return self::$instance;
return new Database();
public function __construct(){
self::$db = new PDO('mysql:host=localhost;dbname=session', 'root','');
public function getOne($sql){
$rs =self::$db-query($sql);
@$rs-setFetchMode(PDO::FETCH_ASSOC);//返回关联数组
$result = $rs - fetch();
return $result;
public function execute($sql){
$rs = self::$db-exec($sql);
return $rs;
//$data = Database::getInstance();
//var_dump($data);
使用REDIS 存储SESSION
class SessionManager{
private $redis;
private $sessionSavePath;
private $sessionName;
$this-redis = new Redis();
$retval = session_set_save_handler(
array($this,"open"),
array($this,"close"),
array($this,"read"),
array($this,"write"),
array($this,"destory"),
array($this,"gc")
);
public function open($path,$name){
public function close(){
public function read($id){
$value = $this-redis-get($id);
if($value){
return $value;
return "";
public function write($id,$data){
if($this-redis-set($id,$data)){
$this-redis-expire($id,$this-sessionExpireTime);
//设置过期时间
public function destory($id){
if($this-redis-delete($id)){
public function gc($maxlifetime){
//析构函数
public function __destruct(){
session_write_close();
$re = new SessionManager();
$_SESSION['name'] = "qq";
echo $_SESSION['name'];
以上就是土嘎嘎小编大虾米为大家整理的相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!