- 浏览: 622245 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (334)
- java core (12)
- struts2.x (2)
- spring (3)
- hibernate (8)
- jpa (6)
- maven (2)
- osgi (5)
- eclipse (4)
- struts2.x+spring2.x+hibernate 整合 (5)
- ebs (0)
- html (0)
- vaadin (1)
- css (0)
- jquery (0)
- javascript (0)
- svn (1)
- cvs (0)
- axas2.x (0)
- eclipse+maven (9)
- annotation (0)
- 基于OSGi的动态化系统搭建 (1)
- notenet (1)
- jboss eclipse (4)
- eclipse工具 (4)
- jdk1.6+maven3.0.3+nuxeo+svn+felix+cxf+spring+springDM (6)
- spring dm (1)
- Nexus介绍 (1)
- proxool listener (0)
- oracle (4)
- mysql (8)
- 搭建你的全文检索 (1)
- hibernatehibernatehibernate (0)
- cvsearchcvsearch (0)
- mycvseach (0)
- asdfasdfasdf (0)
- propertiey (0)
- hibernate annotation (0)
- libs (0)
- icam (2)
- start 数据库配置 (0)
- jboss (1)
- 让Eclipse启动时显示选择workspace的对话框 (1)
- table表头固定 (1)
- s2s3h4 (0)
- leaver (0)
- mycvsaerchddd (0)
- 关于jboss5.0.1部署 (4)
- bookmarks (0)
- PersistenceUnitDeployment (0)
- mycom (0)
- HKEY_CURRENT_USER = &H80000001 (0)
- syspath (1)
- css div (1)
- Dreamweaver CS5 (0)
- generate (0)
- mysql查看表结构命令 (1)
- LOG IN ERROR EMAIL TO SB (0)
- struts2 handle static resource (1)
- jsf (2)
- log4j (1)
- jbpm4.4 (2)
- down: jbpm4.4 (1)
- jstl1.2 (1)
- spring annotation (1)
- java design pattern (1)
- cache (1)
- ehcache (1)
- 11111 (0)
- myge (0)
- pom.xml (0)
- springquartz (0)
- OpenStack (9)
- hadoop (2)
- nginx (1)
- hadoop openstack (1)
- os (1)
- hadoop-2.6.0 zookeeper-3.4.6 hbase-0.98.9-hadoop2 集群 (5)
- hadoop2.7.0 ha Spark (2)
- tess (0)
- system (1)
- asdf (0)
- hbase (2)
- hbase create table error (1)
- ekl (1)
- gitignore (1)
- gitlab-ci.yml (1)
- shell (1)
- elasticsearch (2)
- Azkaban 3.0+ (1)
- centos用命令 (1)
- hive (1)
- kafka (1)
- CaptureBasic (0)
- CentOS7 (1)
- dev tools (1)
- README.md (1)
- Error (1)
- teamviewerd.service (1)
- scala (1)
- spark (1)
- standard (1)
- gitlab (1)
- IDEA (0)
- ApplicationContext (1)
- 传统数仓 (1)
- redis install (1)
- MYSQL AND COLUME (1)
- java版本选择 (1)
- hue (1)
- npm (1)
- es (1)
- 版本管理 (1)
- 升级npm版本 (1)
- git (1)
- 服务器参数设置 (1)
- 调大 IDEA 编译内存大小 (0)
- CentOS8安装GitLab (1)
- gitlab安装使用 (1)
最新评论
-
ssydxa219:
vim /etc/security/limits.confvi ...
ekl -
Gamehu520:
table中无数据
hbase 出现的问题 -
Xleer0102:
为什么都是只有问没有答,哭晕在厕所
hbase 出现的问题 -
jiajiao_5413:
itext table -
CoderDream:
不完整,缺com.tcs.org.demostic.pub.u ...
struts2.3.1.1+hibernate3.6.9Final+spring3.1.0+proxool+maven+annotation
Memcached的使用
Memcached的使用
一 、 安装Memcached及Memcached配置和状态查询
(此处将其作为系统服务安装)
要想使用Memcached做缓存首先需要安装Memcached服务,安装方法如下:
1. 下载Memcached:http://code.jellycan.com/memcached/
现在的最新版本是1.2.6.注意下载正确的版本,windows 服务的话下载win32 binary。
2.解压之后放在硬盘的目录下,如:D:\memcached. 然后在运行中输入cmd进入命令行,进入到Memcached.exe 所在的目录,例如:D:\memcached,然后输入:Memcached –d install,即可完成安装。
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 显示帮助
按照上面的安装步骤安装之后,使用memcached –m 200来调整最大内存占用之后会发现没有起作用,总是默认的64MB的内存,在网上搜了一下,原因是注册表中并没有写入信息,可以这样来修改。
1. memcached –d shutdown 首先关闭memcached服务。
2.进入注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached
Server, 在其中有一个ImagePath项,值为"d:\memcached\memcached.exe" -d
runservice,在后面加上-l 127.0.0.1 -m 3000 -c 2048。
3.memcached –d start 启动memcached服务,这样就将memcached的最大内存修改为了3000MB。
对Memcached缓存服务的状态查询,可以先telnet连接上服务:telnet 127.0.0.1 11211 ,然后使用 stats命令查看缓存服务的状态,会返回如下的数据:
time: 1255537291 服务器当前的unix时间戳
total_items: 54 从服务器启动以后存储的items总数量
connection_structures: 19 服务器分配的连接构造数
version: 1.2.6 memcache版本
limit_maxbytes: 67108864 分配给memcache的内存大小(字节)
cmd_get: 1645 get命令(获取)总请求次数
evictions: 0 为获取空闲内存而删除的items数(分配给memcache的空间用满后需
要删除旧的items来得到空间分配给新的items)
total_connections: 19 从服务器启动以后曾经打开过的连接数
bytes: 248723 当前服务器存储items占用的字节数
threads: 1 当前线程数
get_misses: 82 总未命中次数
pointer_size: 32 当前操作系统的指针大小(32位系统一般是32bit)
bytes_read: 490982 总读取字节数(请求字节数)
uptime: 161 服务器已经运行的秒数
curr_connections: 18 当前打开着的连接数
pid: 2816 memcache服务器的进程ID
bytes_written: 16517259 总发送字节数(结果字节数)
get_hits: 1563 总命中次数
cmd_set: 54 set命令(保存)总请求次数
curr_items: 28 服务器当前存储的items数量
二、客户端使用
下载memcached java
client:[url]https://github.com/gwhalin/Memcached-Java-Client [/url] 1
解压后将java_memcached-release_2.5.3.jar jar包添加到工程的classpath中
2 利用memcached java client 一个简单的应用
/**
* Copyright (c) 2008 Greg Whalin
* All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the BSD license
*
* This library is distributed in the hope that it will be
* useful, but WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE.
*
* You should have received a copy of the BSD License along with this
* library.
*
* @author Greg Whalin <greg@meetup.com>
*/
package com.danga.MemCached.test;
import java.util.Hashtable;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
public class MemcachedTest {
// store results from threads
private static Hashtable<Integer,StringBuilder> threadInfo =
new Hashtable<Integer,StringBuilder>();
/**
* This runs through some simple tests of the MemcacheClient.
*
* Command line args:
* args[0] = number of threads to spawn生产的线程的数目
* args[1] = number of runs per thread 每个线程操作次数
* args[2] = size of object to store
*
* @param args the command line arguments
*/
public static void main(String[] args) {
//String[] serverlist = { "hengtiandesk144:11211", "hengtiandesk144:11212" };
String[] serverlist = { "localhost:11211" };
// initialize the pool for memcache servers
SockIOPool pool = SockIOPool.getInstance();
pool.setServers( serverlist );
pool.setInitConn(5);
pool.setMinConn(5);
pool.setMaxConn(50);
//Set the sleep time between runs of the pool maintenance thread.
pool.setMaintSleep(30);
//Sets the Nagle alg flag for the pool.
pool.setNagle(false);
pool.initialize();
/*int threads = Integer.parseInt(args[0]);
int runs = Integer.parseInt(args[1]);
int size = 1024 * Integer.parseInt(args[2]); // how many kilobytes
*/
int threads = Integer.parseInt("20");
int runs = Integer.parseInt("30");
int size = 1024 * Integer.parseInt("10"); // how many kilobytes
// get object to store
int[] obj = new int[size];
for (int i = 0; i < size; i++) {
obj[i] = i;
}
String[] keys = new String[size];
for (int i = 0; i < size; i++) {
keys[i] = "test_key" + i;
}
for (int i = 0; i < threads; i++) { //模仿连接服务器数目
bench b = new bench(runs, i, obj, keys);
b.start();
}
int i = 0;
while (i < threads) {
if (threadInfo.containsKey(new Integer(i))) {
System.out.println(threadInfo.get( new Integer( i ) ) );
i++;
}
else {
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
pool.shutDown();
System.exit(1);
}
/**
* Test code per thread.
*/
private static class bench extends Thread {
private int runs;
private int threadNum;
private int[] object;
private String[] keys;
private int size;
public bench(int runs, int threadNum, int[] object, String[] keys) {
this.runs = runs;
this.threadNum = threadNum;
this.object = object;
this.keys = keys;
this.size = object.length;
}
@SuppressWarnings("deprecation")
public void run() {
//单线程,多线程不安全
StringBuilder result = new StringBuilder();
// get client instance
MemCachedClient mc = new MemCachedClient();
mc.setCompressEnable(false);
mc.setCompressThreshold(0);
// time deletes
long start = System.currentTimeMillis();
for (int i = 0; i < runs; i++) {
mc.delete(keys[i]);
}
long elapse = System.currentTimeMillis() - start;
float avg = (float) elapse / runs;
result.append("\nthread " + threadNum + ": runs: " + runs + " deletes of obj " + (size/1024) + "KB -- avg time per req " + avg + " ms (total: " + elapse + " ms)");
// time stores
start = System.currentTimeMillis();
for (int i = 0; i < runs; i++) {
//System.out.println(keys[i]+object[i]);
mc.set(keys[i], object[i]);
}
elapse = System.currentTimeMillis() - start;
avg = (float) elapse / runs;
result.append("\nthread " + threadNum + ": runs: " + runs + " stores of obj " + (size/1024) + "KB -- avg time per req " + avg + " ms (total: " + elapse + " ms)");
// time gets
start = System.currentTimeMillis();
for (int i = 0; i < runs; i++) {
mc.get(keys[i]);
}
elapse = System.currentTimeMillis() - start;
avg = (float) elapse / runs;
result.append("\nthread " + threadNum + ": runs: " + runs + " gets of obj " + (size/1024) + "KB -- avg time per req " + avg + " ms (total: " + elapse + " ms)");
threadInfo.put(new Integer(threadNum), result);
}
}
}
相关推荐
**Memcached 使用详解** Memcached 是一款高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库负载,提高网站性能。它通过在内存中存储数据,为应用程序提供快速的数据访问,避免了频繁读取...
【Memcached 使用说明】 Memcached 是一套由 danga.com(LiveJournal 技术团队)开发的分布式内存对象缓存系统,旨在减少数据库负载并提升应用性能。它通过将数据存储在内存中,使得高并发环境下的数据访问更为快速...
《Memcached使用最佳实践》是IT领域内关于内存缓存技术的重要参考资料,由Josef Finsel撰写,出版于The Pragmatic Bookshelf。本书详细介绍了如何利用Memcached这一高性能、分布式内存对象缓存系统来优化网站性能,...
Memcached 使用点滴总结分享 Memcached 是一种高性能的缓存系统,可以用来存储数据,以减少数据库的查询次数和提高应用程序的性能。本文总结了作者对 Memcached 的使用经验和实践,包括封装 Memcached Java 客户端...
2. 或者使用以下命令启动 Memcached:/usr/local/bin/memcached -d -m 50 -u root -l 192.168.1.13 -p 11211 -P /tmp/memcached-m。 使用 Memcached 存储 Session 1. 在 PHP 中使用 Memcached 存储 Session,需要...
**标题:“danga memcached使用”** memcached是一款高性能、分布式内存对象缓存系统,它广泛应用于Web应用中,用于减轻数据库的负载,通过在内存中缓存数据和对象来减少读取数据库的次数。Danga是memcached的原始...
php下memcached使用范例(含安装文件)适用php5
本文将深入探讨 Memcached 的使用及其状态分析。 首先,Memcached 以其内存存储机制著称,这使得它在读取速度上远超于传统的硬盘存储,比如使用哈希散列存储数据到硬盘。在内存价格日益降低的今天,使用内存作为...
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的...
### Memcached使用点滴详解 #### 一、Memcached简介及应用场景 Memcached是一款高性能的分布式内存对象缓存系统,主要用于减少数据库负载、加速动态Web应用并增强可扩展性。其核心设计思想在于通过缓存数据库查询...
### Memcached使用手册 #### 一、概述 本手册旨在为用户提供有关如何在ASP.NET Web应用程序中集成并使用Memcached缓存服务的详尽指南。Memcached是一种高性能、分布式内存对象缓存系统,用于减轻数据库负载,加快...
2. **简单的协议**:Memcached使用自定义的文本协议,简洁明了,易于实现和调试。客户端可以轻松地与Memcached进行交互,存储和检索数据。 3. **基于libevent的事件处理**:libevent是一个跨平台的事件通知库,用于...
Memcached 是一款广泛使用的分布式内存缓存系统,它能够有效地缓解数据库的压力,提高应用程序的性能。在本文中,我们将探讨 Memcached 的使用及其在服务访问控制中的应用。 首先,Memcached 的客户端库是其易用性...
一个简单的.Net使用Memcached的示例代码,采用Enyim做为客户端,将查询结果进行缓存,不含数据库,请参照代码建立数据库和一张简单的表,一百万条记录like检索由先前5000ms变为5ms,这个小例子体现了缓存在大型系统中...
- `-m`:分配给Memcached使用的最大内存量,单位为MB; - `-d`:将Memcached作为守护进程在后台运行。 如果需要进行故障排查(troubleshooting),可以在命令后面加上`-vv`选项以获取更详细的日志信息。 ##### 2.3...
Memcached使用键值对的方式存储数据,`set`方法用于设置键值对,`get`方法用于获取键对应的值: ```java String key = "exampleKey"; String value = "exampleValue"; // 存储数据 client.set(key, 60, value); //...
**Memcached 安装与使用详解** Memcached 是一款高性能的分布式内存缓存系统,用于在Web应用中减轻数据库负载。它将数据存储在内存中,以键值对的形式提供快速访问,尤其适用于高并发场景。Memcached 使用简单,可...