热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java+Memcached测试

介绍memcached免费和开源,高性能,分布式的内存对象缓存系统,通用性,可用于加速动态Web应用程序,减轻

介绍



memcached

免费和开源,高性能,分布式的内存对象缓存系统,通用性,可用于加速动态Web应用程序,减轻数据库负载。

memcached是一个在任意的数据块存储键值存储(字符串,对象)从数据库调用,API调用结果,或页面 渲染。

memcached是简单但功能强大的。其简单的设计促进快速部署,易于开发,并解决了许多问题,面临巨大的数据高速缓存。它的API是最流行的语言。

下载:http://memcached.org/downloads





安装

memcached-1.2.6-win32-bin

 

安装目录命令行:
memcached -d install卸载:
memcached -d uninstall启动启动1.界面启动服务(memcached Server)
启动2:控制台下 : memcached -d start
需要的内存大于64m启动:memcached -m 256m -d stat
Lest Recently Used(LRU)大于内存时自己删除不用的检查: 默认端口11211
netstat -anb 查看端口和占用程序使用方法登录:
telnet localhost 11211



命令:


 


ADD key 标志 时间 字节数
如果已存在就不能保存add name 0 60 5[add指令;name是key(key/value);0是标志;60表示存放时间60s ; 5表示放入多大字节]
ADD key 标志 时间 字节数
value必须和字节数大小一样不然报:CLIENT_ERROR bad data chunkGET [key] name例:
add name 0 60 5
hello
STORED
get name
VALUE name 0 5
hello
ENDSET key 标志 时间 字节数
更新key不存在就插入,存在就更新
get age
VALUE age 0 3
100
END
set age 0 60 3
123
STORED
get age
VALUE age 0 3
123
ENDDELETE key 删除key
delete age3
DELETED
get age3
ENDREPLACE key 标志 时间 字节数
replace test 0 5 3 --替换test的定义
替换key之前的定义
add test 0 500 3
100
STORED
replace test 0 5 3
120
STORED
get test
VALUE test 0 3
120
END
get test
ENDAPPEND key 标志 时间 字节数
append name 0 60 3--在字符串后追加add name 0 60 5
hello
STORED
append name 0 60 3
abc
STORED
get name
VALUE name 0 8
helloabc
ENDINCR key 加值
incr count 1
增加数值
get count
VALUE count 0 2
10
END
incr count 1
11
get count
VALUE count 0 2
11
ENDDECR key 减值
decr key 1
get count
VALUE count 0 2
11
END
decr count 1
10
get count
VALUE count 0 2
10
ENDflush_all
全删
flush_all 50
50秒以内到期的全删掉stats
查看状态
STAT pid 22459 进程ID
STAT uptime 1027046 服务器运行秒数
STAT time 1273043062 服务器当前unix时间戳
STAT version 1.4.4 服务器版本
STAT pointer_size 64 操作系统字大小(这台服务器是64位的)
STAT rusage_user 0.040000 进程累计用户时间
STAT rusage_system 0.260000 进程累计系统时间
STAT curr_connections 10 当前打开连接数
STAT total_connections 82 曾打开的连接总数
STAT connection_structures 13 服务器分配的连接结构数
STAT cmd_get 54 执行get命令总数
STAT cmd_set 34 执行set命令总数
STAT cmd_flush 3 指向flush_all命令总数
STAT get_hits 9 get命中次数
STAT get_misses 45 get未命中次数
STAT delete_misses 5 delete未命中次数
STAT delete_hits 1 delete命中次数
STAT incr_misses 0 incr未命中次数
STAT incr_hits 0 incr命中次数
STAT decr_misses 0 decr未命中次数
STAT decr_hits 0 decr命中次数
STAT cas_misses 0 cas未命中次数
STAT cas_hits 0 cas命中次数
STAT cas_badval 0 使用擦拭次数
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 15785 读取字节总数
STAT bytes_written 15222 写入字节总数
STAT limit_maxbytes 1048576 分配的内存数(字节)
STAT accepting_conns 1 目前接受的链接数
STAT listen_disabled_num 0
STAT threads 4 线程数
STAT conn_yields 0
STAT bytes 0 存储item字节数
STAT curr_items 0 item个数
STAT total_items 34 item总数
STAT evictions 0 为获取空间删除item的总数version
查看版本quit
退出登录


 


Memcached-Java-Client

 下载地址:https://github.com/gwhalin/Memcached-Java-Client



测试类:



package junit.memcache;import java.util.Date;import com.meetup.memcached.MemcachedClient;
import com.meetup.memcached.SockIOPool;/*** * @author Daniel memcache测试*/
public class SimpleMemcacheDB {protected static MemcachedClient cache &#61; new MemcachedClient();protected static SockIOPool pool &#61; null;/*** 配置数据源*/static {// memcache集String[] servers &#61; { "192.168.1.33:11211" };Integer[] weights &#61; { 5, 4, 2 };// memcache权重pool &#61; SockIOPool.getInstance();pool.setServers(servers);pool.setWeights(weights);pool.setInitConn(5);pool.setMinConn(5);pool.setMaxConn(50);pool.setMaintSleep(30);pool.setNagle(false);pool.initialize();System.out.println("初始化完成");}/*** 测试方法&#xff1a;测试string和object类型*/public void test() throws Exception{// 清空所有数据&#xff0c;谨慎使用cache.flushAll();// 对象测试// 保存 object 类型&#xff0c;类必须实现Serializable接口for (int i &#61; 1; i <10; i&#43;&#43;) {// 过期时间10scache.set("obj" &#43; i, new User(i &#43; ""), new Date(10000));}for (int i &#61; 1; i <2; i&#43;&#43;) {User myObject &#61; (User) cache.get("obj" &#43; i);System.out.println("Get object from mem :" &#43; myObject);}// 字符串和过期测试// 过期时间1scache.set("testKey", "This is a test String", new Date(1000));System.out.println("get String:"&#43;cache.get("testKey"));//sleep 2.5sThread.sleep(2500);System.out.println("get String过期后:"&#43;cache.get("testKey"));//3600scache.set("TestReplace", "TestReplaceValue",new Date(3600000));System.out.println(cache.get("TestReplace"));//修改过期时间cache.replace("TestReplace","TestReplaceValue",new Date(2000)); //sleep 2.5sThread.sleep(2500);System.out.println("修改后不能获得:"&#43;cache.get("TestReplace")); }}


User.java

package junit.memcache;import java.io.Serializable;public class User implements Serializable{/*** */private static final long serialVersionUID &#61; 1L;String userId;public User(String userId) { super(); this.userId &#61; userId; } public String getUserId() {return userId;}public void setUserId(String userId) {this.userId &#61; userId;}&#64;Overridepublic String toString() {return "User [userId&#61;" &#43; userId &#43; "]";} }


注意&#xff1a;
如果java程序和memcache不在一个服务器&#xff0c;那么注意时间同步问题。我这里就是一直访问不到设置短期的数据&#xff0c;后来发现两个服务器时间没有同步

            存的类需要序列化实现Serializable接口


         下载的源代码里有个不错的多线程多服务器的测试demo可以看一下&#xff1a;com.meetup.memcached.test.TestMemcached







推荐阅读
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • 基于移动平台的会展导游系统APP设计与实现的技术介绍与需求分析
    本文介绍了基于移动平台的会展导游系统APP的设计与实现过程。首先,对会展经济和移动互联网的概念进行了简要介绍,并阐述了将会展引入移动互联网的意义。接着,对基础技术进行了介绍,包括百度云开发环境、安卓系统和近场通讯技术。然后,进行了用户需求分析和系统需求分析,并提出了系统界面运行流畅和第三方授权等需求。最后,对系统的概要设计进行了详细阐述,包括系统前端设计和交互与原型设计。本文对基于移动平台的会展导游系统APP的设计与实现提供了技术支持和需求分析。 ... [详细]
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
author-avatar
羊角roik_789
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有