`
nivcheral
  • 浏览: 71115 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Memcached使用之道

    博客分类:
  • java
阅读更多

Windows下的Memcache安装

很多phper不知道如何在Windows下搭建Memcache的开发调试环境,最近个人也在研究Memcache,记录下自己安装搭建的过程。
其实我开始研究Memcache的时候并不知道居然还有memcached for Win32这个鸟东西,害得我在CnetOS下折腾1天才搞定,今天突然发现Windows下的Memcache进行开发调试完全没有问题,所以写篇Memcache的文档分享给大家。

Windows下的Memcache安装
1.
下载memcachewindows稳定版,解压放某个盘下面,比如在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());

 

分享到:
评论

相关推荐

    29道memcached面试题含答案(很全)

    - Session共享:跨服务器的Web应用中,可以使用Memcached共享用户的Session数据,保证用户会话的连续性。 - 内存存储:在一些轻量级业务中,如投票、统计、关注等,可以替代部分数据库功能,提高处理速度。 3. ...

    memcached-安装使用1

    本文将详细介绍如何安装和使用 Memcached。 首先,安装 Memcached 需要依赖 `libevent-dev` 库。在 Linux 系统(如 Ubuntu 或 Debian)上,你可以使用 `apt` 包管理器来安装它: ```bash sudo apt install ...

    memcached各种序列化策略之session共享

    标题提到的"memcached各种序列化策略之session共享",意味着本文将探讨如何在Memcached中使用不同的序列化方法来共享Web应用中的session数据。Memcached是一个高性能、分布式内存对象缓存系统,常用于减轻数据库负载...

    互联网企业架构中缓存中间件分布式memcached部署与使用

    由于部分数据变化频率低,引入缓存中间件,如memcached,成为解决之道。缓存中间件能够将数据存储在内存中,减少数据库读取,从而提升系统稳定性和响应速度。在此业务架构中,缓存中间件主要解决session共享和热点...

    【大厂面试资料】-Memcached 23 道.pdf

    【大厂面试资料】-Memcached 23 道.pdf

    Nginx+Tomcat+Memcached-Session-Manager集群Session共享

    在本篇文章中,我们将深入探讨如何使用Nginx、Tomcat和Memcached-Session-Manager(MSM)来构建一个集群环境,并实现Session共享。这涉及到集群搭建、分布式应用以及缓存管理等多个方面的IT知识。下面将详细展开这些...

    python-memcached-relay:从 Redis PubSub 通道中继 memcached 更新

    python-memcached-中继从 Redis PubSub 通道中继 memcached 更新这包括一个“推送”HTTP 守护进程,用于将 JSON 事件推送到 redis 服务器集群中。 写入在 redis 服务器之间随机条带化。 还有一个“pull”守护进程,...

    Memcache 面试题 23道

    Memcached的特点在于其简洁高效的设计,完全基于内存存储,使用C/S架构,采用异步I/O模型,以及使用libevent进行事件处理。数据以键值对的形式存储,且支持对数据设置过期时间。 1. **Memcached的作用**: - **...

    Memcache 面试题 23道.pdf

    早期的 Memcached 内存管理方式是通过 malloc 的分配的内存,使用完后通过 free 来回收内存,这种方式容易产生内存碎片,并降低操作系统对内存的管理效率。为了解决这个问题,Slab Allocation 内存分配机制就延生了...

    大众点评数据架构之道---ppt

    ### 大众点评数据架构之道 #### 引言 随着互联网技术的发展,特别是移动互联网的兴起,O2O(Online To Offline,在线离线/线上到线下)模式逐渐成为连接线上用户与线下商家的重要桥梁。作为中国领先的本地生活信息...

    大众点评数据架构之道

    ### 大众点评数据架构之道 #### 数据架构的演变与实践 大众点评作为一个在中国领先的本地生活信息及交易平台,其业务范围覆盖了商户信息、消费点评、消费优惠、团购、电子会员卡、餐厅预订等多个领域。随着业务的...

    服务器开发模式.ppt

    **通讯问题——快慢之道** 通讯问题是服务器开发中的基础,涉及到如何快速、准确地传递数据。为了实现快速通讯,我们需要建立合适的通讯模型,选择正确的通讯方式,并制定合理的通讯协议。例如,TCP 提供面向连接的...

    CallCenterMonitor:带memcached的星号队列监视器

    它使用memcached将数据保存在内存中,从而最大程度地减少了对Asterisk AMI的查询,该过程是: 用户和组星号必须存在于操作系统中数据处理: 咨询AMI->从队列处理数据->将数据保存到内存通过MVC Web应用程序进行数据...

    1000道 互联网Java工程师面试题

    "1000道互联网Java工程师面试题" 本资源提供了互联网Java工程师面试题,涵盖了Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、...

    Redis 50 道面试题及答案.docx

    Redis 和 Memcached 都是基于内存的缓存系统,但它们有很多不同之处: * 数据类型:Redis 支持多种数据结构,而 Memcached 只支持简单的字符串。 * 速度:Redis 的速度比 Memcached 快很多。 * 持久化:Redis 支持...

    redis运维之道.pdf

    ### Redis运维之道知识点详解 #### 一、Redis应用历程与部署场景 - **Redis的应用历程:** Redis作为一种高性能的键值存储系统,在过去几年里经历了迅速的发展和广泛的应用。最初,Redis被用作缓存解决方案,但...

    2024最新版 16000+ 道,280多份,面试题,汇总

    2024年最新版:题库非常全面,累计 16000+ 道 包括 Java 集合、JVM、多线程、并发编程、设计模式、SpringBoot、SpringCloud、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、...

    redis 运维之道 good

    ### Redis 运维之道 #### 一、Redis应用历程与部署场景 Redis作为一种高性能的键值存储系统,在近年来得到了广泛的应用和发展。随着互联网业务的爆发式增长,传统的缓存技术如Memcached等已经无法满足日益增长的...

Global site tag (gtag.js) - Google Analytics