五,session数据写入memcached

1,session数据通常保存在服务器端的文件中,它的默认过期时间是1440s。我们可以将session数据保存到memcached中,设定memcached的过期时间大于session过期时间即可。这样从内存读取session数据的速度高于从文件读取session数据。

2,session数据如果写入memcached,必须在php.ini中修改session的存取方式和存取路径。

将session.save_handler = files修改为session.save_handler = memcache

将 session.save_path = "C:/Users/58/AppData/Local/Temp"修改为session.save_path = "tcp://127.0.0.1:11211"

重启apache

3,编程测试

<?php
/**
 * Created by PhpStorm.
 * User: 58
 * Date: 2016/8/13
 * Time: 17:50
 */
session_start();
$_SESSION[‘name‘] = ‘xiaohong‘;
echo $_SESSION[‘name‘];

  session成功写入缓存,key为SESSION_ID

4,不建议使用memcached存储session,原因有以下两点:

(1)如果用memcached 存储 Session,那么当 memcached 集群发生故障(比如内存溢出)或者维护(比如升级、增加或减少服务器)时,用户会无法登录,或者被踢掉线。

(2)memcached 的回收机制可能会导致用户无缘无故地掉线。因为Memcached 使用“最近最少使用(LRU)”算法回收缓存。

时间: 2024-12-14 13:51:24

五,session数据写入memcached的相关文章

Memcached存Session数据、访问安全性、使用场景总结(3)

最近做了一个单点登录SSO,登陆后的凭证放到Memcached令牌放到Cookies:但是用户经常掉线,开发环境和测试却没有这个问题,最后从Memcached找到原因. Memcached概念.作用.运行原理.特性.不足简单梳理(1) Memcached下载安装.NET对Memcached进行CRUD操作(2) Memcached存Session数据.访问安全性.使用场景总结(3) 一.Session数据放入到Memcached? Memcached创建者Dormando写过两篇文章: Sess

让php或httpd服务来使用memcached存储session数据

memcached命令行 memcached语法 <command?name>?<key>?<flags>?<exptime>?<bytes>\r\n?<data?block>\r\n注:??\r\n在windows下是Enter键 <command?name>可以是set,?add,?replace set ? ? ? ? ? 表示按照相应的<key>存储该数据,??没有的时候增加,??有的时候覆盖 add

PHP 实现多服务器共享 SESSION 数据

PHP 实现多服务器共享 SESSION 数据一.问题起源稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块,使用不同的二级域名,而一个整体性强的网站,用户系统是统一的,即一套用户名.密码在整个网站的各个模块中都是可以登录使用的.各个服务器共享用户数据是比较容易实现的,只需要在后端放个数据库服务器,各个服务器通过统一接口对用户数据进行访问即可.但还存在一个问题,就是用户在这个服务器登录之后,进入另一个服务器的别的模块时,仍然需要重新登录,这就是一次登录,全部通行的问题,映射到

扫盲:php session缓存至memcached中的方法

memcached是一套分布式的快取系统,当初是Danga Interactive为了LiveJournal所发展的,但被许多软件(如MediaWiki)所使用.这是一套开放源代码软件,以BSD license授权协议发布.[1] memcached仅支持一些非常简单的命令 比如get(获取某个键值) set(用来设定或保存一个缓存): 其本身是缓存服务器,但本身无法决定缓存任何数据,其缓存机制依赖于服务端和客户端两者必不可少(存储是由服务端进行存储,但存储什么是由客户端进行决定的) 因此客户端

android五种数据存储方式

在Android中提供了如下五种数据存储方式: SharedPreferences 文件存储 SQLite数据库方式 内容提供器(ContentProvider) 网络存储 下面具体介绍一下这五种数据存储方式的用法. 1. SharedPreferences SharedPreferences是android平台上的一个轻量级存储类,主要保存一些常用的配置信息.可以保存long.int.String类型数据. SharedPreferences以键值对方式读取和存入,最终会以XML方式保存数据,

Android系统的五种数据存储形式(一)

Android系统有五种数据存储形式,分别是文件存储.SP存储.数据库存储.contentprovider 内容提供者.网络存储.其中,前四个是本地存储.存储的类型包括简单文本.窗口状态存储.音频视频数据.XML注册文件的各种数据.各种存储形式的特点不尽相同,因此对于不同的数据类型有着固定的存储形式,本文为演示方便给出的案例基本相同,都是是采用账号登录来演示数据存储,保存账号和密码信息,下次登录时记住账号和密码.重在说明各种存储形式的原理. 文件存储: 以I/O流的形式把数据存入手机内存或SD卡

使用 IntraWeb (40) - 自定义 Session 数据

修改 UserSessionUnit 单元: unit UserSessionUnit; interface uses IWUserSessionBase, SysUtils, Classes, IWApplication; type TIWUserSession = class(TIWUserSessionBase) procedure IWUserSessionBaseCreate(Sender: TObject); procedure IWUserSessionBaseDestroy(Se

将pandas的DataFrame数据写入MySQL数据库 + sqlalchemy

将pandas的DataFrame数据写入MySQL数据库 + sqlalchemy [python] view plain copy print? import pandas as pd from sqlalchemy import create_engine ##将数据写入mysql的数据库,但需要先通过sqlalchemy.create_engine建立连接,且字符编码设置为utf8,否则有些latin字符不能处理 yconnect = create_engine('mysql+mysql

memecached存放session数据

memcached存放session 1.session数据需要频繁调用. 2.session数据不需要永久性的保存在服务端. 3.在集群中,可以将session存放在memcached中或者是在数据库中,可以做到用户登录存放在一台服务器中的问题.实现session共享 实现session存放在memcached中 1.在编译php的memcached扩展的时候,内部就实现了一个SESSION处理器,session.save_handler <?php ini_set('session.save