memcache分布式实现、memcache分布式的数据同步、memcache保存session数据的实现

Memcache的分布式介绍

memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能。服务器端仅包括内存存储功能,其实现非常简单。至于memcached的分布式,则是完全由客户端程序库实现的。这种分布式是memcached的最大特点。

Memcached的分布式是什么意思?

这里多次使用了“分布式”这个词,但并未做详细解释。现在开始简单地介绍一下其原理,各个客户端的实现基本相同。

下面假设memcached服务器有node1~node3三台,应用程序要保存键名为“tokyo”“kanagawa”“chiba”“saitama”“gunma”的数据。

图1 分布式简介:准备

首先向memcached中添加“tokyo”。将“tokyo”传给客户端程序库后,客户端实现的算法就会根据“键”来决定保存数据的memcached服务器。服务器选定后,即命令它保存“tokyo”及其值。

图2 分布式简介:添加时

同样,“kanagawa”“chiba”“saitama”“gunma”都是先选择服务器再保存。接下来获取保存的数据。获取时也要将要获取的键“tokyo”传递给函数库。函数库通过与数据保存时相同的算法,根据“键”选择服务器。使用的算法相同,就能选中与保存时相同的服务器,然后发送get命令。只要数据没有因为某些原因被删除,就能获得保存的值。

图3 分布式简介:获取时

这样,将不同的键保存到不同的服务器上,就实现了memcached的分布式。 memcached服务器增多后,键就会分散,即使一台memcached服务器发生故障无法连接,也不会影响其他的缓存,系统依然能继续运行。

Php+memcache实现分布式:

我们PHP的PECL中的Memcache扩展能够有效的解决Memcache的分布式问题,主要的接口就是 addServer() 函数,具体关于addServer()函数的实现可以参考该扩展源代码。那么现在就存在第二个问题,就是说无法同步数据,可以理解为MySQL中Master/Slave的机制,就是说如果我们有多台的Memcache服务器,使用addServer函数的话,每个服务器存储的数据都是唯一的,也就是说每个memcached服务器上存储的数据不是统一的,而是各自保存了不通的数据。

配置使用memcache存储session数据

session.save_handler = memcache

session.save_path ="tcp://127.0.0.1:11211"

或者某个目录下的 .htaccess :

php_value session.save_handler"memcache"

php_value session.save_path "tcp://127.0.0.1:11211"

再或者在某个一个应用中:

ini_set("session.save_handler","memcache");

ini_set("session.save_path","tcp://127.0.0.1:11211");

使用多个 memcached server 时用逗号","隔开,并且和Memcache::addServer() 文档中说明的一样,可以带额外的参数"persistent"、"weight"、"timeout"、"retry_interval"等等,类似这样的:"tcp://host1:port1?persistent=1&weight=2,tcp://host2:port2"。

存session:

<?php

session_start();

if (!isset($_SESSION['TEST'])) {

$_SESSION['TEST'] = time();

}

$_SESSION['TEST3'] = time();

print $_SESSION['TEST'];

print "<br><br>";

print $_SESSION['TEST3'];

print "<br><br>";

print session_id();

?>

从memcache中取回session数据

<?php

$memcache = memcache_connect('localhost',11211);

var_dump($memcache->get('19216821213c65cedec65b0883238c278eeb573e077'));

?>

会有看到

string(37)"TEST|i:1177556731;TEST3|i:1177556881;"

这样的输出,证明 session 正常工作

用 memcache 来存储 session 在读写速度上会比 files 时快很多,而且在多个服务器需要共用 session 时会比较方便,将这些服务器都配置成使用同一组 memcached 服务器就可以,减少了额外的工作量。缺点是 session 数据都保存在 memory 中,持久化方面有所欠缺,但对 session 数据来说也不是很大的问题。

另外,WS Memcached Session Handler for PHP 提供一种用session_set_save_handler 来利用 memcached 的方法。。

Linux下的Memcache安装

1.如果通过下载源码进行安装,则需要下载最新版本http://memcached.googlecode.com/files/memcached-1.4.13.tar.gz。

如果通过apt-get方式安装,则无需下载。

2.进行memcache的安装:

1).下载源码,进行编译安装

Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新版本是https://github.com/downloads/libevent/libevent/libevent-2.0.19-stable.tar.gz,如果你的系统已经安装了libevent,则不需要安装。

# cd /tmp

# wget http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz

# wgethttp://www.monkey.org/~provos/libevent-1.2.tar.gz

2.先安装libevent:

# tar zxvf libevent-1.2.tar.gz

# cd libevent-1.2

# ./configure --prefix=/usr

# make

# make install

测试libevent是否已经安装。

# ls -al /usr/lib | grep libevent

lrwxrwxrwx 1 root root 21 11?? 12 17:38libevent-1.2.so.1 -> libevent-1.2.so.1.0.3

-rwxr-xr-x 1 root root 263546 11?? 12 17:38libevent-1.2.so.1.0.3

-rw-r--r-- 1 root root 454156 11?? 12 17:38 libevent.a

-rwxr-xr-x 1 root root 811 11?? 12 17:38 libevent.la

lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent.so-> libevent-1.2.so.1.0.3

安装memcache

安装memcached,同时需要安装中指定libevent的安装位置:

# cd /tmp

# tar zxvf memcached-1.2.0.tar.gz

# cd memcached-1.2.0

# ./configure --with-libevent=/usr

# make

# make install

如果中间出现报错,请仔细检查错误信息,按照错误信息来配置或者增加相应的库或者路径。

安装完成后会把memcached放到 /usr/local/bin/memcached 。

测试是否成功安装memcached:

# ls -al /usr/local/bin/mem*

-rwxr-xr-x 1 root root 137986 11?? 12 17:39/usr/local/bin/memcached

-rwxr-xr-x 1 rootroot 140179 11?? 12 17:39 /usr/local/bin/memcached-debug

2)通过apt-get进行安装:

sudo apt-get install memcached,推荐通过该方式进行安装,比较简单,不容易出现错误。

启动memcache服务器:

memcached -d -m 50 -p 11211 -uroot

memcached常用启动参数描述:

 -d:启动一个守护进程,

-m:分配给Memcache使用的内存数量,单位是MB,默认是64MB,

-u:运行Memcache的用户

-l:监听的服务器IP地址

-p:设置Memcache监听的端口,默认是11211注:-p(p为小写)

-c:设置最大并发连接数,默认是1024

-P:设置保存Memcache的pid文件注:-P(P为大写)

-h 显示帮助

安装Memcache的PHP扩展

通过地址http://pecl.php.net/get/memcache-2.2.6.tgz下载memcache最新的稳定版本。

安装php的memcache扩展有两种方式:

在linux下安装memcache扩展

可以使用php自带的pecl安装程序
# pecl install memcache

或apt-get安装php的memcache扩展

sudo apt-get installphp5-memcache

也可以从源码安装

# tar zxf memcache-2.2.3.tgz

# cd memcache-2.2.3

# /usr/local/servers/php5/bin/phpize

#./configure --enable-memcache=/usr/local/servers/memcached--with-php-config=/usr/local/servers/php5/bin/php-config--with-apxs2=/usr/sbin/apxs

# make && make inst

安装完后会有类似这样的提示:

Installing shared extensions:/usr/local/servers/php5/lib/php/extensions/no-debug-non-zts-20060922/

把这个记住,然后修改php.ini,把

extension_dir ="./"

修改为

extension_dir ="/usr/local/servers/php5/lib/php/extensions/"

并添加一行

extension="no-debug-non-zts-20060922/memcache.so"

在windows下安装memcache扩展

下载时要弄清楚自己的php版本,下载相对应的memcache扩展的版本,我用的是php5.2.6,下载地址为http://museum.php.net/php5/pecl-5.2.6-Win32.zip,解压后找到它的php_memcache.dll文件,放在php目录下的extension目录下,并在php.ini 加入一行 ‘extension=php_memcache.dll’。phpinfo下,看是否安装成功。

Php的memcache

使用实例:

< ?php

//连接

$mem = new Memcache;

$mem->connect("192.168.0.200", 12000);

//保存数据

$mem->set('key1', 'This is first value', 0, 60);

$val = $mem->get('key1');

echo "Get key1 value: " . $val ."<br/>";

//替换数据

$mem->replace('key1', 'This is replace value', 0,60);

$val = $mem->get('key1');

echo "Get key1 value: " . $val ."<br />";

//保存数组

$arr = array('aaa', 'bbb', 'ccc', 'ddd');

$mem->set('key2', $arr, 0, 60);

$val2 = $mem->get('key2');

echo "Get key2 value: ";

print_r($val2);

echo "<br />";

//删除数据

$mem->delete('key1');

$val = $mem->get('key1');

echo "Get key1 value: " . $val ."<br />";

//清除所有数据

$mem->flush();

$val2 = $mem->get('key2');

echo "Get key2 value: ";

print_r($val2);

echo "<br />";

//关闭连接

$mem->close();

?>

Memcached集群

Magent软件介绍

magent是一款开源的memcached代理服务器软件

地址: http://code.google.com/p/memagent/

安装magent到/usr/local/下

cd /usr/local

mkdir magent

cd magent/

wgethttp://memagent.googlecode.com/files/magent-0.5.tar.gz

tar zxvf magent-0.5.tar.gz

/sbin/ldconfig

sed -i "s/LIBS = -levent/LIBS =-levent -lm/g" Makefile

make

magent命令参数:
-hthis message
-u uid
-g gid
-p port, default is 11211. (0 to disable tcpsupport)
-s ip:port, set memcached server ip and port
-b ip:port, set backup memcached server ip andport
-l ip, local bind ip address, default is 0.0.0.0
-n number, set max connections, default is 4096
-D don't go to background
-k use ketama key allocation algorithm
-f file, unix socket path to listen on. defaultis off
-i number, max keep alive connections for onememcached server, default is 20
-v verbose

启动magent服务
magent -u root -n4096 -l 127.0.0.1 -p12000 -s127.0.0.1:8086-s 127.0.0.2:8086-b 127.0.0.1:11213

magent的hash算法

magent采用的是:Consistent Hashing原理,Consistent Hashing如下所示:首先求出memcached服务器(节点)的哈希值,并将其配置到0~232的圆(continuum)上。 然后用同样的方法求出存储数据的键的哈希值,并映射到圆上。 然后从数据映射到的位置开始顺时针查找,将数据保存到找到的第一个服务器上。如果超过232仍然找不到服务器,就会保存到第一台memcached服务器上。

从上图的状态中添加一台memcached服务器。余数分布式算法由于保存键的服务器会发生巨大变化而影响缓存的命中率,但Consistent Hashing中,只有在continuum上增加服务器的地点逆时针方向的第一台服务器上的键会受到影响。

利用magent实现对memecache的分布式管理,搭建一套memcache集群服务

1、前端php对magent的访问跟对memcache访问相同,不需要做任何更改,对于插入的key,magent会把值散列到各个memcache服务上,只操作magent,不用关心后端处理

2、公司项目应用:南北各10台前端,南北各部署一套magent服务,主要是考虑电信网通的跨网访问.以北方为例,每个前端安装memcached服务(大内存机器可以启动多个服务),每个前端都安装magent服务,后端挂载全部机器的 memcached服务,启动参数:

magent-p 12000 -s 127.0.0.1:8086 -s 127.0.0.2:8086 -s 127.0.0.3:8086.......-s127.0.0.10:8086

,所有前端配置都是相同的,任何一个前端只需访问本地端口的magent,这样的memcache集群对应用带来很大便利.

比如项目的基本配置信息,早期策略只能在中控机生成配置文件,同步到各个前端,没有办法把配置信息放到缓存中,因为各个前端的memcache是不共享 的,一台机器缓存更新,其它机器是不更新的,用程序去控制更新,还是存在不稳定因素,而且随着服务增多,也不便于管理,部署了magent后,就可以解决 这个问题,任何一个前端更新数据=全局更新
这种部署还可以解决的应用:session共享

Magent使用举例

启动两个memcached进程,端口分别为11211和11212:

memcached -m 1 -u root -d -l 127.0.0.1 -p 11211

memcached -m 1 -u root -d -l 127.0.0.1 -p 11212

启动两个magent进程,端口分别为10000和11000:

magent -u root -n 51200 -l 127.0.0.1 -p 10000 -s127.0.0.1:11211 -b 127.0.0.1:11212

magent -u root -n 51200 -l 127.0.0.1 -p 11000 -s127.0.0.1:11212 -b 127.0.0.1:11211

-s 为要写入的memcached, -b 为备份用的memcached。

说明:测试环境用magent和memached的不同端口来实现,在生产环境中可以将magent和memached作为一组放到两台服务器上。

也就是说通过magent能够写入两个memcached。

magent使用

1、安装libevent:

wgethttp://monkey.org/~provos/libevent-1.4.13-stable.tar.gz
tar-xzvflibevent-1.4.13-stable.tar.gz
cdlibevent-1.4.13-stable
./configure--prefix=/usr/local/libevent
make
make install

2、安装Memcached:

wgethttp://memcached.googlecode.com/files/memcached-1.4.4.tar.gz
tar-xzvfmemcached-1.4.4.tar.gz
cdmemcached-1.4.4
./configure--prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
make
make install
ln-s/usr/local/libevent/lib/libevent-1.4.so.2 /usr/lib/

3、编译安装magent:

mkdirmagent
cpmagent-0.5.tar.gz magent
cdmagent
tar-xzvfmagent-0.5.tar.gz
/sbin/ldconfig
sed-i"s#LIBS = -levent#LIBS = -levent -lm#g"Makefile
vi magent.c 添加
#include<limits.h>
make

一、使用实例:

memcached-m 1-u root-d-l192.168.1.219-p 11211
memcached-m 1-u root-d-l192.168.1.219-p 11212
memcached-m 1-u root-d-l192.168.1.219-p 11213


magent-u root-n 51200-l192.168.1.219-p 12000-s192.168.1.219:11211-s192.168.1.219:11212-b192.168.1.219:11213

1、分别在11211、11212、11213端口启动3个Memcached进程,在12000端口开启magent代理程序;

2、11211、11212端口为主Memcached,11213端口为备份Memcached;

  3、连接上12000的magent,set key1和set key2,根据哈希算法,key1被写入11212和11213端口的Memcached,key2被写入11212和11213端口的Memcached;

4、当11211、11212端口的Memcached死掉,连接到12000端口的magent取数据,数据会从11213端口的Memcached取出。

三、整个测试流程:

# telnet 192.168.1.21912000
Trying 1192.168.1.219...
Connected to 192.168.1。219.
Escapecharacter is'^]'.
stats
memcached agent v0.4
matrix 1->192.168.1.219:11211,poolsize0
matrix 2->192.168.1.219:11212,poolsize0
END
set key1 0 0 5
reesun
STORED
set key2 0 0 6
reesun1
STORED
quit
Connection closed by foreign host.


#telnet192.168.1.21911211
Trying192.168.1.219...
Connected to192.168.1.219.
Escapecharacter is'^]'.
get key1
END
get key2
VALUE key2 0 6
reesun1
END
quit
Connection closed by foreign host.


#telnet192.168.1.21911212
Trying192.168.1.219...
Connected to 1192.168.1.219.
Escapecharacter is'^]'.
get key1
VALUE key1 0 5
reesun
END
get key2
END
quit
Connection closed by foreign host.


#telnet192.168.1.21911213
Trying192.168.1.219...
Connected to 1192.168.1.219.
Escapecharacter is'^]'.
get key1
VALUE key1 0 5
reesun
END
get key2
VALUE key2 0 6
reesun1
END
quit
Connection closed by foreign host.

MAVLink协议详解 MAVLink是为微型飞行器MAV(Micro Air Vehicle)设计的(LGPL)开源的通讯协议。是无人飞行器和地面站(Ground Control Station ,GCS)之间,以及无人飞行器之间通讯常用的协议。APM、PIXHAWK飞控,Mission Planner、QGroundControl地面站均使用了MAVLink协议进行通讯。 MAVLink源码下载地址(现已更新至v2.0):https://github.com/mavlink/qgroundcontrol   用户手册:ht 阅读详情

相关推荐

FOC时序及电流采样注意事项

摘要:本文介绍了无刷电机FOC(磁场定向控制)的实现方法,重点解析了电流采样时序与PWM同步的关键技术。在S32K144平台上,需使用两个独立的ADC组件实现双路电流同步采样,采样时刻必须严格对应低边MOS管开启时间并位于PWM波形中央。文章详细说明了硬件触发时序设计、采样电阻配置原则,并通过示波器实测波形验证了电流反馈电路的正确性,指出正弦电流波形应是理想输出形态。关键点包括ADC-PWM时序同步、低边MOS采样及正确的PWM映射配置。

qq_40916548的博客 2622

memcache 分布式 java_memcached分布式原理与实现

memcached分布式原理与实现标签(空格分隔): nosql0x01 概况1.1 什么是memcachedmemcached是一个分布式,开源的数据存储引擎。memcached是一款高性能的分布式内存缓存服务器,通过减少查询次数来抵消沉重缓慢的数据集或API调用、提高应用响应速度、提高可扩展性。在高并发的场景下, 大量的读/写请求涌向数据库, 此时磁盘IO将成为瓶颈, 从而导致过高的响应延迟,...

weixin_29832179的博客 421

Virbox Protector:全方位守护 Android 应用安全

在数字化浪潮中,Android 应用面临着诸多安全挑战,如破解、篡改、盗版、数据窃取和钓鱼欺诈等。为了应对这些复杂的安全问题,Virbox Protector 应运而生,为 Android 应用提供高强度的专业化安全保护,支持对 APK 和 AAB 文件的加固保护,并兼容 Google Play,助力应用顺利出海。

VBP_2025的博客 997

Memcached开发(十八):使用Memcached实现分布式缓存

在现代应用程序开发中,缓存技术扮演着至关重要的角色。随着应用规模的扩大和用户需求的增加,单一的缓存服务器无法满足高并发、高性能的需求。分布式缓存应运而生,能够通过多台服务器协同工作来提升系统的性能和可用性。本文将详细介绍如何使用Memcached实现分布式缓存,并通过代码示例展示其具体实现方法。

1296

图像去雾新思路:手把手教你复现DEA-Net中的“细节增强卷积”与PyTorch实现

本文详细解析了DEA-Net中的'细节增强卷积'(DEConv)与PyTorch实现,通过多分支差分卷积和重参数化技术,显著提升单图像去雾效果。文章从数学原理到代码实现,手把手指导复现这一创新架构,帮助开发者在保持轻量化的同时实现41dB以上的PSNR指标,适用于自动驾驶、遥感监测等关键领域。

weixin_30323631的博客 505

Google Earth Engine(GEE)——使用归一化燃烧指数 (NBR) 绘制地表烧伤严重程度图

归一化燃烧指数(Normalized Burn Ratio, NBR)是一种遥感指标,用于评估野火或烧伤地面后的植被恢复情况。NBR能增强较大范围的火灾区域,如大于200公顷。它是通过比较远红外波段 (SWIR) 和近红外波段 (NIR) 的反射率来计算的。SWIR波段测量烧伤地面的反射率,NIR波段测量没有受到烧伤影响的植被的反射率。NBR的计算公式为:NBR =(NIR-SWIR)/(NIR + SWIR)。其中,NIR为近红外波段,SWIR为短波红外波段。

此星光明博客 3464

Memcached分布式缓存系统

Memcached分布式缓存系统 介绍 优化访问速度 随着网站迭代开发,访问会变慢。 LNMP架构中网站应用访问流程 浏览器(app)=>web服务器=>后端服务(php)=>数据库(mysql) 访问流程越多,访问速度越慢,出现问题的几率也越大 优化访问速度,可以减少访问步骤或者提高单步访问速度 具体优化方法: 提高web服务器的并发量:如采用nginx作为web服务器;多台服务器实现负载均衡 页面静态化:把经常访问,但数据不常变动的动态页面,制作为静态页面 优

gxy_learning的博客 624

Sigrity System Explorer Transient Analysis模式进行瞬态仿真分析操作指导-单端信号

Sigrity System Explorer Transient Analysis模式可以用于瞬态仿真分析,通过搭建简易拓扑用于前仿真分析通道的时域性能,下面搭建一个简易的单端拓扑进行说明,以下图为例,准备好发送接收端的IBIS模型, (ibis_se.ibs,本例发送接收端都使用相同的IBIS模型),以及传输线的S参数模型(welement_se.sp)最上方的图形界面是传输线的模型,本例是一个上下都有参考平面的带状线,右侧的梯形是蚀刻角度,根据W1和W2以及铜厚来确定。

weixin_54787054的博客 417

memcached分布式实现原理

正文   在高并发环境下,大量的读、写请求涌向数据库,此时磁盘IO将成为瓶颈,从而导致过高的响应延迟,因此缓存应运而生。无论是单机缓存还是分布式缓存都有其适应场景和优缺点,当今存在的缓存产品也是数不胜数,最常见的有redis和memcached等,既然是分布式,那么他们是怎么实现分布式的呢?本文主要介绍分布式缓存服务mencached的分布式实现原理。   一、缓存本质计算机体系缓存

samjustin的博客 2969

常用元器件使用方法13:物理层接口芯片DP83848的使用方法

介绍: DP83848是以太网物理层接口芯片,具有多种型号,从便于焊接角度考虑LQFP-48封装较为合适,采用LQFP-48封装的芯片,有2种型号,分别为DP83848I和DP83848C,如下图所示。 其主要区别是使用温度不同,如下图所示。 这2种芯片芯片网上均有销售,按理说DP83848C价格应该更加便宜,实际不然,DP83848I的价格低于DP83848C,考虑或与芯片的出货量...

snmplink的博客 1万+

[明道云] -基础教学5- 明道云 40 种控件详解与场景解析

明道云工作表提供40种业务控件,涵盖文本、数值、关联、公式等类型,支持各类业务场景。文本类支持多行输入、正则校验;数值/金额类提供进度条、百分比显示等功能;关联类实现多表数据引用;公式/函数类支持复杂逻辑运算;自动化类包括打印模板、API调用等控件。合理使用这些控件可提升数据收集质量和自动化效率,同时需注意控件联动的性能影响和权限配置。关键控件包括关联记录、级联选择、公式计算等,适用于订单管理、客户信息关联等业务场景。

每日出拳老爷子的博客 8541

分布式环境下,如何实现 session 共享(How to Implement Session Sharing in a Distributed Environment)

Session是一种用于维护客户端与服务器之间会话的技术。‌ 它主要用于存储特定用户会话中的信息,确保在用户与服务器交互的过程中,数据不会丢失‌。当用户通过浏览器访问网站时,服务器会为该用户创建一个唯一的Session对象。这个Session对象存储在服务器端,并通过一个唯一的标识符(通常是中的Cookield)与客户端进行关联。用户在进行页面跳转或发起新的请求时,服务器可以通过sessionId识别用户,从而恢复之前的会话状态‌。本章详细介绍分布式环境下,如何实现 session 共享。

Linux运维老纪的博客 2049

PCIe 全解析笔记:从协议本质到工程实现

学习 PCIe,最容易陷入的误区是直接跳进协议手册(Base Spec 1300 多页),然后在 TLP 字段、LTSSM 状态、Ordering Rules 中迷失方向。正确的思维路径历史维度:从 PCI 到 PCIe,解决了什么核心矛盾?抽象维度:协议栈分层的真正意图是什么?工程维度:高速串行链路面临哪些物理挑战?协议如何应对?系统维度:作为 CPU 与外设的"动脉",PCIe 如何融入整个计算机体系?带着这四个视角去看每一个细节,知识才能内化为认知。

m0_46644103的博客 261

实现基于Memcache存储的Session类

自主实现Session功能的类,基于文件方式存储Session数据,测试基本通过,还比较好玩,实际应用没有意义,只不过是学习Session是如何实现的。 使用基于文件的Session存取瓶颈可能都是在磁盘IO操作上,所以对付小数据 量的Session没有问题,但是如果碰到大数据量的Sesstion,那么可能无法胜任,现在利用Memcache来保存Session数据,直接通过 内存的方式...

ddzmq5378的博客 120

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

memcache实现session共享

session的本质: http协议是无状态的,即你连续访问某个网页100次和访问1次对服务器来说是没有区别对待的,因为它记不住你。 因此,在某些为了让服务器记住或者认识你的情况下,该怎么办呢?为了解决这个问题,session就诞生了。 session共享: 为什么要session共享呢?如果你的网站是存放在一个机器上,那么是不存在这个问题的,因为会话数据就在这台机器,用户每次请求的都是这

EFFORTS && VALUE 3467

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

memcache php session共享,PHP实现多服务器session共享之memcache共享

本文是PHP实现多服务器session共享之NFS共享的延续,不过这次,我采用memcache来存储session了,memcache的安装请看这里:搭建高效、可靠、稳定的WEB服务器 -- 二、) 安装MySQL、memcache。接下来,再自定义一套session处理机制,关于session的实现方法我就不再多讲,直接贴程序了。/* vim: set expandtab tabstop=4 s...

weixin_35724794的博客 188

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

php分布式如何与session共享,分布式 php实现session共享

以下为重写的PHP类代码/* vim: set expandtab tabstop=4 shiftwidth=4 foldmethod=marker: *//*** 文件: MemcacheSession.inc.php* 类名: MemcacheSession Class* 功能: 自主实现基于Memcache存储的 Session 功能* 描述: 这个类就是实现Sess...

weixin_32662187的博客 193

[转] 多域名THINKPHP利用MEMCACHE方式共享SESSION数据

[转] 多域名THINKPHP利用MEMCACHE方式共享SESSION数据 http://blog.youkuaiyun.com/youngerchen/article/details/6651110   不错的文章,易懂 TP 本身只支持一台,如何配置多台memcache?网络上有答案 http://www.poluoluo.com/jzxy/2...

liNewman的博客 141

session、cookie、Memcache总结

基于Memcache的 Session数据的多服务器共享(一) 一 相关介绍 1. memcache + memcache的多服务器数据共享 的介绍,请参见http://www.guigui8.com/index.php/archives/206.html 2. session机制: session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来

fashion_luo的专栏 2077

原创 实现基于Memcache存储的Session类

原创 实现基于Memcache存储的Session类

gfyufffb的博客 151

php memcached 集群,PHP实现分布式memcache设置web集群session同步的方法

本文实例讲述了PHP实现分布式memcache设置web集群session同步的方法。php的session默认是文件存储:session.save_handler = filessession.save_path = "/var/lib/php/session"当做web集群,需要session同步时,将session存到分布式memcache来达到共享同步是个不错的办法方法:第1种:vi /e...

weixin_42813171的博客 163

[原创]实现基于Memcache存储的Session类

 实现基于Memcache存储的Session类 作者:heiyeluren博客:http://blog.youkuaiyun.com/heiyeshuwu我没事的时候写的自主实现Session功能的类,基于文件方式存储Session数据,测试基本通过,还比较好玩,实际应用没有意义,只不过是学习Session是如何实现的。使用基于文件的Session存取瓶颈可能都是在磁盘IO操作上,所以对付小

heiyeluren的blog(黑夜路人的开源世界) 9505

LNMP架构——nginx +tomcat+memcache+sticky实现session共享(memcache在tomcat中实现session交叉存放)

本次实验是在Nginx架构——nginx+tomcat搭建nginx反向代理实现tomcat负载均衡基础上进行的,已经搭建了lnmp+memcache+openresty++sticky+tomcat+jsp并且配置了tomcat负载均衡及会话保持,可参考上一篇搭建出相同环境。存在的问题是在会话过程中,客户端第二次发起请求与第一次发起请求分别被转发到不同的tomcat服务器上,数据不一致。 接下来...

CapejasmineY的博客 438

[转载]web集群时利用memcache来同步session

web集群时session同步的3种方法 在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是登录状态。所以本文就根据这种情况给出三种不同的方法来解决这个问题: 一,利用数据库同步session 在做多服务器session同步时我没有用...

weixin_33860528的博客 354
上一篇: 重构-改善既有代码的设计:重新组织函数的九种方法(笔记四)
下一篇: Memcache分组和多组数据同步机制的实现
piperzero
博客等级 码龄21年 1377粉丝 504原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值