memcache的分布式存储

一、session数据入memcache的问题

客户端要执行登录的操作,当用户登录成功后,要把信息存储到sesson里面。因为负载均衡把请求是轮流转发给apache的服务器的,导致服务器无法共享 session文件。如图所示:

具体的配置:打开php.ini 配置文件

1. 修改session的存储方式为memcache

2. 指定session信息存储的位置

也可以使用函数ini_set()函数改变php.ini 的配置,只对当前页面有效。

ini_set(‘session.save_handler‘,‘memcache‘);
ini_set(‘session.save_path‘,‘tcp://ip地址1:端口,tcp://ip地址2:端口‘);

注意:使用session的方式和以前是一样的。
session信息存储到memcache里面是以sessionid为键的,失效时间与session相同的。

二、分布式系统具体的配置

1. 注意事项:

(1)要实现分布式配置需要两台以上memcache服务器。

(2)使用一个算法,该算法决定数据向哪台服务器存储。

2. 实例操作

(1)设置数据

// 实例化一个memcache的类
$mem  =new Memcache();
// 连接多台memcache服务器
$mem->addServer(‘localhost‘,11211);
$mem->addServer(‘192.168.0.171‘,11211);
// 设置数据
$mem->set(‘name‘,‘jason‘,0,3600);
$mem->set(‘age‘,23,0,3600);

(2)获取数据

// 实例化一个memcache的类
$mem = new Memcache();
// 连接多台memcache服务器
$mem->addServer(‘localhost‘,11211);
$mem->addServer(‘192.168.0.171‘,11211);
// 获取数据
var_dump($mem->get(‘name‘));
var_dump($mem->get(‘age‘));

注意:在设置数据与取出数据是,memcache服务器添加顺序与个数要一致。原因是使用的算法是取模算法,在设置数据或取出数据时,根据键名转换成一个数字与服务器的个数进行取模。取模的结果就决定向哪台服务器存储数据。
memcache服务器的算法是取模算法,是内置的,我们自己无需干预。

时间: 2024-12-06 09:26:58

memcache的分布式存储的相关文章

memcache -- 使用场景

memcache:分布式缓存机制 使用场景: 1.对数据的存储要求不高,就算丢失也关系不大(因为memcache是非持久化存储) 2.不适合单机使用,即不适合将memcache和数据库等都放到同一台机器上(因为memcache是分布式存储,且很耗内存) 3.key/value格式存储,不支持List,Array格式的数据

Gz_memcache

目录 一.内容回顾:    1 二.memcache基本概念:    2 三.memcache的安装:    4 1.下载软件,并解压,拷贝到指定的位置,一般便于管理,和服务器的环境在同一个目录下    4 2.以管理员的方式进入到cmd窗口,并进入到memcache所在的目录    4 (3)安装完成后,要启动服务,    5 (4)安装时要注意:    5 四.如何连接memcache服务器进行使用.    6 五.使用telnet来进行连接到memcache服务器(类似于黑窗口)    6

Memcache 分布式存储 【一致性Hash】crc32

class memcacheHash { private $_node = array(); private $_nodeData = array(); private $_keyNode = 0; private $_memcache = null; //每个物理服务器生成虚拟节点个数 [注:节点数越多,cache分布的均匀性越好,同时set get操作时,也更耗资源,10台物理服务器,采用200较为合理] private $_virtualNodeNum = 200; private fun

谈谈redis,memcache的区别和具体应用场景

时间:2016 十月 12 1. Memcached简介 Memcached是以LiveJurnal旗下Danga Interactive公司的Bard Fitzpatric为首开发的高性能分布式内存缓存服务器.其本质上就是一个内存key-value数据库,但是不支持数据的持久化,服务器关闭之后数据全部丢失.Memcached使用C语言开发,在大多数像Linux.BSD和Solaris等POSIX系统上,只要安装了libevent即可使用.在Windows下,它也有一个可用的非官方版本(http

memcache概述

一.memcache概述 1.介绍 memcache一款高性能的分布式的内存缓存系统,他是将我们的数据以键值对的形式存放在内存,从而可以提高数据的访问速度,从而提高网站的整体的响应速度. 原理图: 介质访问速度:数据库<文件<内存 memcache的使用场景: 因为memcache是将数据存放在内存中,不可将数据同步到硬盘中(不可以持久化),电脑一旦关机,内存中的数据就会丢失,所以不要存放重要的数据. 一般数据变化频繁,但是不重要的数据我们可以使用memcache缓存起来 2.memcache

MemCache 基本应用(1)

PS: 第一次用MemCache,出现了N多问题,记录下来,之所以用到MemCache,想用来解决分布式存储session校验用户登陆 什么是MemCache? memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的.需要频繁访问数据库的网站访问速度提升效果十分显著 .这是一套开放源代码软件,以BSD license授权发布 MemCache的优点 1 解决高并发访问数据库的问题,

memcache分布式缓存

1 什么是memcache 以及memcache有什么作用 Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度. 2 下载并安装(希望大家自己去动手 印象会更深) 下载memcache 进入cmd ,切换到 memcached.exe 文件所在目录 memcached.exe –d install (1)

redis与memcache的区别2

总结一: memcache官方定义 Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load. redis官方定义 Redis is an open source, BSD lic

大型互联网技术架构4-分布式存储-II Google

The largest single database on earth - Google Spanner. 我们继续互联网技术架构-分布式存储. 上文大篇幅介绍了一些分布式存储的理论,偏重理论.可别小看这些理论,Google的各个神器都是建立在这些理论之上,甚至整个Apache的大数据3剑客项目都是受惠于这些理论.难怪@Tiger大牛讲Google靠的是一大批世界顶尖数据,物理,计算领域的Ph.D.,这些大神以及他们的Paper是Google为什么是Google的原因,以及Google没有开源