采用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; ?>
相关推荐
-
php设置session值和cookies的学习示例
第一步:先在本地写一个登陆页面和一个内容页面(登陆了才能进去)吧.代码大致如下: 下面是login.php,用于请求登陆的,通过post传递参数,如果登陆成功就会注册session. 复制代码 代码如下: <?phpsession_start(); if (isset($_POST['username'])) { $username = $_POST['username']; $password = $_POST['password']; if ($username == 'admi
-
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详解
一.Memcache简介 Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力.它可以应对任意多个连接,使用非阻塞的网络IO.由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached管理这些HashTable,所以速度非常快. 二.Memcache和memcached的区别 为什么会有Memcache和memcached两种名称?其实Memcache是
-
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将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
-
使用Memcache缓存mysql数据库操作的原理和缓存过程浅析
对于大型网站如facebook,ebay等网站,如果没有Memcache做为中间缓存层,数据访问不可能吃得消,对于一般网站,只要具备独立的服务器,完全可以通过配置Memcache提高网站访问速度和减少数据库压力,这里主要讨论一下Memcache和MySQL数据库交互过程的流程关系,了解Memcache的中间缓存层作用,从而深入了解Memcache机制原理. Memcache和MySQL交互流程图 如上图,传统的查询方法是直接查询数据库,数据库将结果返回给查询语句,而当有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
-
采用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广播
随机推荐
- MySQL 4.0 升级到mysql 5.0的方法
- 一个注册表搞定“打开局域网机器文件提示”
- xcode 左边导航栏中符合含义详解
- ASP.NET实现级联下拉框效果实例讲解
- 快速获取/设置iframe内对象元素的几种js实现方法
- 利用sender的Parent获取GridView中的当前行(获取gridview的值)
- python中将函数赋值给变量时需要注意的一些问题
- 12步入门Python中的decorator装饰器使用方法
- JS给swf传参数的实现方法
- iis下设置301 Redirect 永久重定向的方法
- 超链接的陷下效果
- 浅谈Java编程中的synthetic关键字
- CentOS6.2网卡设置
- 将自己做好的数据库导入到服务器中
- 详谈OnTouchListener与OnGestureListener的区别
- jQuery制作的别致导航有阴影背景高亮模式窗口
- vue 虚拟dom的patch源码分析
- Linux中如何查询运行文件的全路径的方法
- PHP+MySQL实现消息队列的方法分析
- 详解java为什么不允许类多重继承却允许接口多重继承