采用memcache在web集群中实现session的同步会话
使用memcache来同步session是还是不错的,当然也可以通过redis来保存session,可以php开启并将Session存储到Redis缓存,下面是设置利用memcache在web集群中同步会话session的实现过程:
1、模拟web集群
我启动了二个memcached进程,分别模拟二台服务器
/usr/local/bin/memcached -d -m 20 -u zhangy -p 12000 -P ./memcached.pid
/usr/local/bin/memcached -d -m 20 -u zhangy -p 13000 -P ./mem.pid
2、修改php的配置
vi /usr/local/php/lib/php.ini
session.save_handler = "memcache"
memcache.hash_strategy = "consistent"
session.save_path = "tcp://127.0.0.1:13000?weight=10,tcp://127.0.0.1:12000"
说明:第一行,session的储存方式是memcache;第二行,memcache的hash算法是consistent;第三行,session储存的地位;
3、重启apache
查看phpinfo
session
Session Support | enabled |
Registered save handlers | files user sqlite memcache |
Registered serializer handlers | php php_binary |
紧接着下面是:
session.save_path | tcp://127.0.0.1:13000,tcp://127.0.0.1:12000 | tcp://127.0.0.1:13000,tcp://127.0.0.1:12000 |
4、做个简单测试如下:
a)、准备文件session.php
<?php session_start(); $_SESSION['username'] = "abcabc"; echo session_id(); ?>
b)、显示session内容文件
<?php $mem = new Memcache; $mem->addServer("127.0.0.1",12000)or die ("Could not add server 12000"); $mem->addServer("127.0.0.1",13000)or die ("Could not add server 13000"); $val = $mem->get('qp0mrob2ovcqle3u4lbr4obsa5'); //echo session_id(); 得到的session id echo $val; ?>
相关推荐
-
使用Memcache缓存mysql数据库操作的原理和缓存过程浅析
对于大型网站如facebook,ebay等网站,如果没有Memcache做为中间缓存层,数据访问不可能吃得消,对于一般网站,只要具备独立的服务器,完全可以通过配置Memcache提高网站访问速度和减少数据库压力,这里主要讨论一下Memcache和MySQL数据库交互过程的流程关系,了解Memcache的中间缓存层作用,从而深入了解Memcache机制原理. Memcache和MySQL交互流程图 如上图,传统的查询方法是直接查询数据库,数据库将结果返回给查询语句,而当有Memcache中间缓存层
-
php将session放入memcached的设置方法
可以修改php.ini文件的情况下: 1.修改php.ini中的 复制代码 代码如下: session.save_hander = memcache;session.save_path = "tcp://host:端口号";//例如:session.save_path = "tcp://127.0.0.1:11211"; 2.正常存取session的值就OK了. 不可以修改php.ini文件的情况下: a.动态修改php.ini中的设置. 复制代码 代码如下: in
-
php的memcache类分享(memcache队列)
memcacheQueue.class.php 复制代码 代码如下: <?php/** * PHP memcache 队列类 * @author LKK/lianq.net * @version 0.3 * @修改说明: * 1.放弃了之前的AB面轮值思路,使用类似数组的构造,重写了此类. * 2.队列默认先进先出,但增加了反向读取功能. * 3.感谢网友FoxHunter提出的宝贵意见. * @example: * $obj = new memcacheQueue('duilie'); * $
-
PHP+Memcache实现wordpress访问总数统计(非插件)
以前写过一篇博文,利用 PHP 和 Memcache 实现网站,以下链接查看:http://www.jb51.net/article/51825.htm 今天就把该功能用到 wordpress 中,并实现把访问次数保存到数据库中. MySQL 语句 首先在参数表中,添加访问次数的默认数据 // 获取所有浏览次数 function get_all_visit_number() { $mc = new Memcache (); // 使用wordpress自带wpdb类 global $wpdb;
-
PHP中的Memcache详解
一.Memcache简介 Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力.它可以应对任意多个连接,使用非阻塞的网络IO.由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached管理这些HashTable,所以速度非常快. 二.Memcache和memcached的区别 为什么会有Memcache和memcached两种名称?其实Memcache是
-
PHP独立Session数据库存储操作类分享
直接上代码: 复制代码 代码如下: class DbSession{ const TYPE_INT = 1; const TYPE_STR = 2; /** * Database configration * * @var array */ private $_config = array( 'host' => '127.0.0.1′, 'port' => 3306, 'usernam
-
php设置session值和cookies的学习示例
第一步:先在本地写一个登陆页面和一个内容页面(登陆了才能进去)吧.代码大致如下: 下面是login.php,用于请求登陆的,通过post传递参数,如果登陆成功就会注册session. 复制代码 代码如下: <?phpsession_start(); if (isset($_POST['username'])) { $username = $_POST['username']; $password = $_POST['password']; if ($username == 'admi
-
采用memcache在web集群中实现session的同步会话
使用memcache来同步session是还是不错的,当然也可以通过redis来保存session,可以php开启并将Session存储到Redis缓存,下面是设置利用memcache在web集群中同步会话session的实现过程: 1.模拟web集群 我启动了二个memcached进程,分别模拟二台服务器 /usr/local/bin/memcached -d -m 20 -u zhangy -p 12000 -P ./memcached.pid /usr/local/bin/memcache
-
PHP实现分布式memcache设置web集群session同步的方法
本文实例讲述了PHP实现分布式memcache设置web集群session同步的方法. php的session默认是文件存储: session.save_handler = files session.save_path = "/var/lib/php/session" 当做web集群,需要session同步时,将session存到分布式memcache来达到共享同步是个不错的办法 方法: 第1种: vi /etc/php.ini session.save_handler = memc
-
Keepalived+Nginx+Tomcat 实现高可用Web集群的示例代码
Keepalived+Nginx+Tomcat 实现高可用Web集群 一.Nginx的安装过程 1.下载Nginx安装包,安装依赖环境包 (1)安装 C++编译环境 yum -y install gcc #C++ (2)安装pcre yum -y install pcre-devel (3)安装zlib yum -y install zlib-devel (4)安装Nginx 定位到nginx 解压文件位置,执行编译安装命令 [root@localhost nginx-1.12.2]# pwd
-
在Kubernetes集群中搭建Istio微服务网格的过程详解
目录 1.使用sealos部署快速部署K8S集群 1.1.基本环境配置 1.2.部署K8S集群 2.在K8S集群中部署Istio网格服务 2.1.下载Istio安装包 2.2.查看Istio可用的配置列表 2.3.展示Istio配置档的配置信息 2.4.查看Istio在k8s集群部署使用的YAML文件内容 1.使用sealos部署快速部署K8S集群 1.1.基本环境配置 1.设置主机名 hostnamectl set-hostname k8s-master hostnamectl set-hos
-
在Redis集群中使用pipeline批量插入的实现方法
由于项目中需要使用批量插入功能, 所以在网上查找到了Redis 批量插入可以使用pipeline来高效的插入, 示例代码如下: String key = "key"; Jedis jedis = new Jedis("xx.xx.xx.xx"); Pipeline p = jedis.pipelined(); List<String> myData = .... //要插入的数据列表 for(String data: myData){ p.hset(ke
-
Redis集群水平扩展、集群中添加以及删除节点的操作
在Redis集群搭建中,我们搭建了下图所示的Redis集群,接下来我们就来看看如何为我们的Redis集群进行水平扩容. [root@localhost redis-5.0.3]# src/redis-server redis-cluster/8001/redis.conf [root@localhost redis-5.0.3]# src/redis-server redis-cluster/8004/redis.conf [root@localhost redis-5.0.3]# src/re
-
教你快速构建一个基于nginx的web集群项目
目录 一 ·项目环境 二· 项目描述 三· 项目步骤 1.安装 2.配置 3.实现负载均衡 4.搭建服务器 5.压力测试 6.监控 7.高可用 8.域名解析 9.提升性能 10.使用ansible编写playbook 四· 项目总结 五·搭建WEB注意 一 ·项目环境 centos7/8服务器8台.nginx 1.21.1.ab.nfs4. zabbix.keepalived 2.1.5 .ansible,bind 二· 项目描述 构建一个基于nginx的4/7层负载均衡的web集群项目 模拟企
-
Docker Stack 部署web集群的方法步骤
Docker越来越成熟,功能也越来越强大.使用Dokcer Stack做服务集群也是非常的方便,docker自己就提供了负载功能,感觉很方便,就想给大家分享一下,做一个简单的教程. 环境 我是用了两台centos7的虚拟机来做这个教程他们的ip分别是 主服务器:192.168.0.105 // 也是私有仓库服务器 服务器2: 192.168.0.49 这篇帖子中所有的代码 github地址:https://github.com/lpxxn/godockerswarm 设置Docker Swarm
-
通过Nginx搭建Tomcat9集群并实现Session共享
使用Nginx搭建Tomcat9集群,Redis实现Session共享 1.tomcat准备 首先准备两个tomcat9 ,修改配置文件server.xml 如果在多个服务器上分别启动tomcat 则不存在此问题. 2.实现Nginx集群 修改nginx.conf配置文件,实现集群 3.Redis实现Session 共享 在tomcat/lib 目录下添加以下三个jar 包 然后更改tomcat的context.xml文件 然后先启动redis服务,然后启动tomcat和nginx的服务. 以上
-
实现分布式WebSocket集群的方法
目录 1.问题起因 场景描述 2.系统架构图 本文涉及的技术栈 3.技术可行性分析 WebSocketSession与HttpSession 4.解决方案的演变 4.1.Netty与SpringWebSocket 4.2.使用netty实现websocket 4.3.使用springwebsocket实现ws服务 4.3.1.第一步:添加依赖 4.3.2.第二步:添加配置类 4.3.3.第三步:实现消息监听类 5.从zuul技术转型到springcloudgateway 6.session广播
随机推荐
- Visual Studio 2015和 .NET Core安装教程
- JS中encodeURIComponent函数用php解码的代码
- WinForm项目开发中NPOI用法实例解析
- Android开发基于Drawable实现圆角矩形的方法
- Android自定义View播放Gif动画的示例
- JS获取url链接字符串 location.href
- Android中WebView的一些简单用法
- Linux中FTP服务器的搭建教程
- SQL Server误区30日谈 第25天 有关填充因子的误区
- Laravel 5框架学习之Eloquent 关系
- 金山反病毒20041229_日报
- Java递归算法的使用分析
- Spring Data JPA使用Sort进行排序(Using Sort)
- c++加法高精度算法的简单实现
- 23种设计模式(13)java观察者模式
- mysql按照天统计报表当天没有数据填0的实现代码
- 说说如何利用 Node.js 代理解决跨域问题
- Pandas之DataFrame对象的列和索引之间的转化
- 详解用async/await来处理异步
- PYTHON绘制雷达图代码实例