初学 Java MemCache 自己的总结。

MemCached 个人总结

1. MemCached 简介

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap,所有数据都放在储存在内存中。

2. 使用MemCached准备

Memcached 插件,Memcached完全依赖它,在使用Memcached必须启动这个插件。双击。

这代表 Memcached插件已经启动成功,如果插件停止,那么所有的内存数据将会被销毁。

3. MemCached 用到的 jar

4. MemCached 流程

5. MemCached 实际使用个人思路

MemCacheUtil 负责Cache 底层操作

MemCacheSupport 负责调用Util 减化操作、

公共初始化数据↓

创建 公共数据类

在MemCacheUtil进行初始化

根据特殊需要↓

EntityCache 实体CacheDao

EntityCacheImpl 实体CacheDaoImpl 继承 MemCacheSupport

6. MemCaChed 配置

服务器端口:可以设置多个Ip,实现分布式缓存

memcache.server=127.0.0.1:11211

缓存大小

Memcache.weights = {1}

缓冲的基本信息

初始连接数、最小最大连接数、最大处理时间

memcache.initConn=20

memcache.minConn=10

memcache.maxConn=50

线程休眠时间

memcache.maintSleep=3000

禁止使用nagle算法

memcache.nagle=false

请求缓存超时时间

memcache.socketTO=3000

当一个服务器请求超时是否去访问另一台

memcache.failover=true

最大处理时间

memcache.maxidle=1000*30*30

检查服务器是否失效

memcache.alivecheck=true

7. MemCached 主要类

Socke 连接池实例对象

SockIOPool

获得SockIOPoo 2 种方式

1.代码块

SockIOPool pool = SockIOPool.getInstance();

pool.setxxx(xxx);

pool.initialize();

2.Spring注入

MemCachedClient MemCached主要操作对象

获得MemCachedClient

获得单例对象,防止数据冲突,节省内存,根据业务需求实际情况而定

8. MemCachedClient 方法详解

9. MemCached 服务器

启动Memcache 常用参数
-p <num>      设置端口号(默认不设置为: 11211)
-U <num>      UDP监听端口 (默认: 11211, 0 时关闭)  
-l <ip_addr>  绑定地址 (默认:所有都允许,无论内外网或者本机更换IP,有安全隐患,若设置为127.0.0.1就只能本机访问)
-d            duli进程运行
-u <username> 绑定使用指定用于运行进程 <username>
-m <num>      允许最大内存用量,单位M (默认: 64 MB)
-P <file>     将PID写入文件<file>,这样可以使得后边进行快速进程终止, 需要与 -d 一起使用
如:
在linux下:./usr/local/bin/memcached -d -u jb-mc -l 192.168.1.197 -m 2048 -p 12121
在window下:d:\App_Serv\memcached\memcached.exe -d RunService -l 127.0.0.1 -p 11211 -m 500

telnet连接以及请求命令

需要保证 Memcached 服务已打开。

连接成功

telnet写入memcache命令格式

<command name> <key> <flags> <exptime> <bytes>\r\n <data block>\r\n

1.<command name> 可以是”set”, “add”, “replace”

2.<key> 保存数据的key

3.<flags> 是一个16位的无符号的整数(以十进制的方式表示)。

4.<exptime> 过期的时间。0表示存储的数据永远不过时

5.<bytes> 需要存储的字节数 ,当用户希望存储空数据时,可以为0

6.最后客户端需要加上”\r\n”作为”命令头”的结束标志。

telnet响应命令

1.STORED  表示存储成功

2.NOT_STORED  表示存储失败,但是该失败不是由于错误

其他操作命令方法同上

Telnet 其他命令

Stats 状态

stats reset 清空统计数据

Flush_all 清空数据

Quit 退出telnet

10. MemCached 应用场景

适用于 MemCached ↓

a.如果网站包含了访问量很大的动态网页,因而数据库的负载将会很高。由于大部分数据库请求都是读操作,那么memcached可以显著地减小数据库负载。

b.利用memcached可以缓存 session数据 、临时数据以减少对他们的数据库写操作。

c.缓存一些很小但是被频繁访问的文件。

不适用 MemCached ↓

a.缓存对象的大小大于1MB

b. key的长度大于250字符

c.应用运行在不安全的环境中

Memcached未提供任何安全策略,仅仅通过telnet就可以访问到memcached。如果应用运行在共享的系统上,需要着重考虑安全问题。
d.业务本身需要的是持久化数据或者说需要的应该是database

时间: 2024-10-11 03:25:18

初学 Java MemCache 自己的总结。的相关文章

初学JAVA函数

  函数是定义在类中的具有特定功能的小程序,函数也称为方法(将功能代码封装,便于对该功能进行服用,只有被调用施才会被执行) 静态函数所调用的被调用函数也必须是静态. 格式: 修饰符返回值类型函数名(参数类型形式参数1,参数类型形式参数2) { 执行语句: Return 返回值: } 特殊情况:功能没有返回值时,return的后面直接用分号结束,因为没有具体返回值,所以此时的返回值类型用void来表示. 函数提高了代码的复用性. class test617 {        public stat

初学Java web(转)

转自 http://www.oschina.net/question/12_52027 OSCHINA 软件库有一个分类——Web框架,该分类中包含多种编程语言的将近500个项目. Web框架是开发者在使用某种语言编写Web应用服务端时关于架构的最佳实践.很多Web框架是从实际的Web项目抽取出来的,仅和Web的请求和响应处理有关,形成一个基础,在开发别的应用项目的时候则可以从这个剥离出来的基础做起,让开发者更关注更具体的业务问题,而不是Web的请求和响应的控制. 框架很多,但套路基本类似,帮你

初学Java总结

在初学Java的过程中学习的总结如下: 开始我们先了解了计算机语言编程的分类,计算机语言分为机器语言,汇编语言,高级语言,其中包括三个语言中各自的特点,让我深入了解到了其中的含义以及计算机语言的发展过程,之后我们学习了算法,怎样去描述算法怎样去制作算法的流程图,这样很好的锻炼了我们人脑的逻辑思维能力以及了解计算机到底是怎么运作的.Java是一种多功能的高级语言.它可以开发web页面上的小程序,桌面上运行的应用程序,还可以用于客户端和服务器资源的服务端中间件,以及用于web服务器,嵌入式系统和智能

201671010131 2016-2017-2 《Java程序设计》初学Java,所感所学总结。

1.简单的了解了Java语言以及它的特性: ①简单  ②面向对象  ③分布性  ④可移植性  ⑤ 解释型  ⑥安全性  ⑦健壮性  ⑧多线程  ⑨高性能  ⑩动态 2.初学Java,首先学会了下载Java开发工具包JDK;还有学会了Windows系统环境配置. 3.下载了Java开发软件eclipse以及示例程序,并且使用集成开发环境简单的编写了一个小程序. 4.练习了用命令行进行编译并运行Java程序. 感想: 初学Java,就觉得有一点点的复杂,不仅需要集成开发环境,还需要工具包.但是Jav

初学 Java Web 开发,请远离各种框架,从 Servlet 开发

Web框架是开发者在使用某种语言编写Web应用服务端时关于架构的最佳实践.很多Web框架是从实际的Web项目抽取出来的,仅和Web的请求和响应处 理有关,形成一个基础,在开发别的应用项目的时候则可以从这个剥离出来的基础做起,让开发者更关注更具体的业务问题,而不是Web的请求和响应的控制. 框架很多,但套路基本类似,帮你隐藏很多关于 HTTP 协议细节内容,专注功能开发. 但对一个初学者来说,过早的接触框架往往是事倍功半!同样一个问题,换一种框架你可能需要从头开始研究. 下面是针对初学 Java

初学java之大数处理

1 import java.text.*; 2 public class Gxjun 3 { 4 public static void main(String args[] ) 5 { 6 int n=123456789; 7 System.out.println("整数"+"按千分组号(带正好)"); 8 String s=String.format("%,+d",n); 9 System.out.println(s); 10 double n

初学java之StringBuffer类的常用方法

1 import java.text.*; 2 public class Gxjun 3 { 4 public static void main(String atgs[]) 5 { 6 StringBuffer str= new StringBuffer(); 7 str.append("大家好"); 8 System.out.println("str:"+str); 9 System.out.println("length:"+str.len

初学java之触发响应事件

1 2 import java.awt.*; 3 import javax.swing.*; 4 import java.awt.event.*; 5 6 class WindowActionEvent extends JFrame 7 { 8 JTextField text; //声明一个文本区 9 ActionListener listener ; //listener是监视器 10 //设置一个默认的构造函数 11 public WindowActionEvent() 12 { 13 se

《初学JAVA》

对于JAVA这门编程语言,以前我从未接触过,但也有所耳闻,所以初学JAVA时的我没感到有多少紧张. 根据我们平时的学习来看吧,学习JAVA我们需要具备的入门条件有: 条件之一 我们需要有足够的耐心:怎么说呢,本来编程就是一项比较枯燥的工作,一开始我们接触起来可能还会因为对新鲜事物的好奇,从而不觉得编程枯燥,但时间长了,每天都让我们面对这一行行的代码,结果就不言而喻了,所以我们学习JAVA编程语言,首先就得拥有足够的耐心. 条件之二 我们需要拥有较强的逻辑能力:编程,顾名思义,需要我们人为的编写程