很多phper不知道如何在Windows下搭建Memcache的开发调试环境,最近个人也在研究Memcache,记录下自己安装搭建的过程。
其实我开始研究Memcache的时候并不知道居然还有memcached for Win32这个鸟东西,害得我在CnetOS下折腾1天才搞定,今天突然发现Windows下的Memcache进行开发调试完全没有问题,所以写篇Memcache的文档分享给大家。
Windows下的Memcache安装:
1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached
2. 在终端(也即cmd命令界面)下输入 ‘c:\memcached\memcached.exe -d install’ 安装
3. 再输入: ‘c:\memcached\memcached.exe -d start’ 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。
4.下载php_memcache.dll,请自己查找对应的php版本的文件
5. 在C:\winnt\php.ini 加入一行 ‘extension=php_memcache.dll’
6.重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!
memcached的基本设置:
-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助
package com.xuanyou;
import java.util.Date;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
public class MemCachedManager {
// 创建全局的唯一实例
protected static MemCachedClient mcc = new MemCachedClient();
protected static MemCachedManager memCachedManager = new MemCachedManager();
// 设置与缓存服务器的连接池
static {
// 服务器列表和其权重
String[] servers = { "127.0.0.1:11211" };
Integer[] weights = { 3 };
// 获取socke连接池的实例对象
SockIOPool pool = SockIOPool.getInstance();
// 设置服务器信息
pool.setServers(servers);
pool.setWeights(weights);
// 设置初始连接数、最小和最大连接数以及最大处理时间
pool.setInitConn(5);
pool.setMinConn(5);
pool.setMaxConn(250);
pool.setMaxIdle(1000 * 60 * 60 * 6);
// 设置主线程的睡眠时间
pool.setMaintSleep(30);
// 设置TCP的参数,连接超时等
pool.setNagle(false);
pool.setSocketTO(3000);
pool.setSocketConnectTO(0);
// 初始化连接池
pool.initialize();
// 压缩设置,超过指定大小(单位为K)的数据都会被压缩
mcc.setCompressEnable(true);
mcc.setCompressThreshold(64 * 1024);
}
/**
* 保护型构造方法,不允许实例化!
*
*/
protected MemCachedManager() {
}
/**
* 获取唯一实例.
*
* @return
*/
public static MemCachedManager getInstance() {
return memCachedManager;
}
/**
* 添加一个指定的值到缓存中.
*
* @param key
* @param value
* @return
*/
public boolean add(String key, Object value) {
return mcc.add(key, value);
}
public boolean add(String key, Object value, Date expiry) {
return mcc.add(key, value, expiry);
}
public boolean replace(String key, Object value) {
return mcc.replace(key, value);
}
public boolean replace(String key, Object value, Date expiry) {
return mcc.replace(key, value, expiry);
}
/**
* 根据指定的关键字获取对象.
*
* @param key
* @return
*/
public Object get(String key) {
return mcc.get(key);
}
public static void main(String[] args) {
MemCachedManager cache = MemCachedManager.getInstance();
cache.add("hello", 234);
System.out.print("get value : " + cache.get("hello"));
}
}
public static void main(String[] args) {
MemCachedManager cache = MemCachedManager.getInstance();
TBean tb = new TBean();
tb.setName("E网打进");
cache.add("bean", tb);
TBean tb1 = (TBean) cache.get("bean");
System.out.println("name=" + tb1.getName());
tb1.setName("E网打进_修改的");
cache.replace("bean", tb1);
tb1 = (TBean) cache.get("bean");
System.out.println("name=" + tb1.getName());
分享到:
相关推荐
- Session共享:跨服务器的Web应用中,可以使用Memcached共享用户的Session数据,保证用户会话的连续性。 - 内存存储:在一些轻量级业务中,如投票、统计、关注等,可以替代部分数据库功能,提高处理速度。 3. ...
本文将详细介绍如何安装和使用 Memcached。 首先,安装 Memcached 需要依赖 `libevent-dev` 库。在 Linux 系统(如 Ubuntu 或 Debian)上,你可以使用 `apt` 包管理器来安装它: ```bash sudo apt install ...
标题提到的"memcached各种序列化策略之session共享",意味着本文将探讨如何在Memcached中使用不同的序列化方法来共享Web应用中的session数据。Memcached是一个高性能、分布式内存对象缓存系统,常用于减轻数据库负载...
由于部分数据变化频率低,引入缓存中间件,如memcached,成为解决之道。缓存中间件能够将数据存储在内存中,减少数据库读取,从而提升系统稳定性和响应速度。在此业务架构中,缓存中间件主要解决session共享和热点...
【大厂面试资料】-Memcached 23 道.pdf
在本篇文章中,我们将深入探讨如何使用Nginx、Tomcat和Memcached-Session-Manager(MSM)来构建一个集群环境,并实现Session共享。这涉及到集群搭建、分布式应用以及缓存管理等多个方面的IT知识。下面将详细展开这些...
python-memcached-中继从 Redis PubSub 通道中继 memcached 更新这包括一个“推送”HTTP 守护进程,用于将 JSON 事件推送到 redis 服务器集群中。 写入在 redis 服务器之间随机条带化。 还有一个“pull”守护进程,...
Memcached的特点在于其简洁高效的设计,完全基于内存存储,使用C/S架构,采用异步I/O模型,以及使用libevent进行事件处理。数据以键值对的形式存储,且支持对数据设置过期时间。 1. **Memcached的作用**: - **...
早期的 Memcached 内存管理方式是通过 malloc 的分配的内存,使用完后通过 free 来回收内存,这种方式容易产生内存碎片,并降低操作系统对内存的管理效率。为了解决这个问题,Slab Allocation 内存分配机制就延生了...
### 大众点评数据架构之道 #### 引言 随着互联网技术的发展,特别是移动互联网的兴起,O2O(Online To Offline,在线离线/线上到线下)模式逐渐成为连接线上用户与线下商家的重要桥梁。作为中国领先的本地生活信息...
### 大众点评数据架构之道 #### 数据架构的演变与实践 大众点评作为一个在中国领先的本地生活信息及交易平台,其业务范围覆盖了商户信息、消费点评、消费优惠、团购、电子会员卡、餐厅预订等多个领域。随着业务的...
**通讯问题——快慢之道** 通讯问题是服务器开发中的基础,涉及到如何快速、准确地传递数据。为了实现快速通讯,我们需要建立合适的通讯模型,选择正确的通讯方式,并制定合理的通讯协议。例如,TCP 提供面向连接的...
它使用memcached将数据保存在内存中,从而最大程度地减少了对Asterisk AMI的查询,该过程是: 用户和组星号必须存在于操作系统中数据处理: 咨询AMI->从队列处理数据->将数据保存到内存通过MVC Web应用程序进行数据...
"1000道互联网Java工程师面试题" 本资源提供了互联网Java工程师面试题,涵盖了Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、...
Redis 和 Memcached 都是基于内存的缓存系统,但它们有很多不同之处: * 数据类型:Redis 支持多种数据结构,而 Memcached 只支持简单的字符串。 * 速度:Redis 的速度比 Memcached 快很多。 * 持久化:Redis 支持...
### Redis运维之道知识点详解 #### 一、Redis应用历程与部署场景 - **Redis的应用历程:** Redis作为一种高性能的键值存储系统,在过去几年里经历了迅速的发展和广泛的应用。最初,Redis被用作缓存解决方案,但...
2024年最新版:题库非常全面,累计 16000+ 道 包括 Java 集合、JVM、多线程、并发编程、设计模式、SpringBoot、SpringCloud、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、...
### Redis 运维之道 #### 一、Redis应用历程与部署场景 Redis作为一种高性能的键值存储系统,在近年来得到了广泛的应用和发展。随着互联网业务的爆发式增长,传统的缓存技术如Memcached等已经无法满足日益增长的...