package org.bjrms;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
public class MemCachedManagerTest {
private static MemCachedManager cache;
private byte data[];
@Test
public void insertImage() throws Exception{
File image=new File("C:\\Users\\Administrator\\Desktop\\1.png");
InputStream input=new FileInputStream(image);
data=new byte[1024];
List<byte[]> list =new ArrayList<byte[]>();
int length=-1;
while((length=input.read(data))!=-1){
if(length<1024){
byte data2[]=new byte[length];
for(int i=0;i<length;i++){
data2[i]=data[i];
}
data=data2;
}
byte data3[]=new byte[length];
for(int i=0;i<data.length;i++){
data3[i]=data[i];
}
list.add(data3);
}
cache.add("image", list);
}
static{
cache = MemCachedManager.getInstance();
}
}
获取图片并返回
package org.bjrms.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.bjrms.MemCachedManager;
public class ImageEngine extends HttpServlet {
private static MemCachedManager cache=MemCachedManager.getInstance();
/**
* Constructor of the object.
*/
public ImageEngine() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("image/png");
OutputStream out=response.getOutputStream();
List<byte[]>list=(List<byte[]>) cache.get("image");
for(int i=0;i<list.size();i++){
byte data[]=list.get(i);
out.write(data, 0, data.length);
}
out.flush();
out.close();
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}
}
分享到:
相关推荐
**memcached缓存服务器详解** Memcached是一款高性能、分布式内存对象缓存系统,它广泛应用于Web应用中,用于减轻数据库的负载,提高数据访问的速度。它的设计目标是简单且高效,通过将数据存储在内存中,实现了...
通过学习和实践,你可以掌握ThinkPHP框架中的Memcached缓存,从而提升你的Web应用性能,减轻数据库压力,并提供更流畅的用户体验。同时,不断关注和研究ThinkPHP的新特性、更新和最佳实践,将有助于保持你的应用...
Memcached是一种高性能、分布式内存对象缓存系统,用于在动态应用中减少数据库负载,提高网站性能。它通过存储数据和对象在内存中来加快数据访问速度,尤其适用于处理大量短期数据,例如网页、图片或其他静态内容。...
Memcached是一款由Danga Interactive公司(LiveJournal的技术团队)所研发的分布式内存对象缓存系统,它最初是为了减轻数据库负载和提升动态网站性能而设计的。Memcached通过缓存数据库查询结果或者其他频繁访问的...
Memcached是一种高性能、分布式内存对象缓存系统,用于在分布式计算环境中存储临时数据,以减少对数据库的访问压力。这个压缩包文件包含了与Memcached相关的程序实例,这为我们提供了学习和理解Memcached工作原理...
3. **静态内容缓存**: 存储静态文件如图片、CSS、JavaScript,提供更快的访问速度。 4. **分布式系统中的数据共享**: 在分布式环境中,多个节点共享同一份缓存数据,提高数据一致性。 5. **负载均衡**: 通过...
这种灵活性使得memcached可以广泛应用于不同场景,如图片预加载、网页内容缓存等。 **4. 轻量级设计** 为了保证高效运行,memcached设计得非常轻量级。它没有复杂的事务处理机制,也不支持持久化,而是依赖于操作...
它主要用于缓存动态生成的数据,例如博客文章、论坛帖子,以及用于前端 Web 应用的缓存,如图片、CSS、JS 文件等静态资源。此外,memcached 还常被用作 session 会话共享的存储,确保用户登录信息在分布式环境中的...
1. **Memcached缓存数据**:Memcached主要用于缓存数据库查询结果、文章内容、BBS帖子、支付信息以及用户个人信息等,以减轻数据库负载。 2. **Memcached与持久化存储**:与Memcached相比,像Redis这样的工具提供了...
3. 加载和缓存图片:如果图片不在缓存中,通过流读取图片数据,然后使用Cache.Add方法添加到缓存,设置过期时间。过期时间可以根据需求调整,比如设置为固定时间间隔或根据图片的更新频率动态计算。 4. 返回结果:...
通过在内存中创建一个大型的哈希表,`memcached`可以存储多种格式的数据,如图片、视频、文件以及数据库查询结果。最初应用于LiveJournal,如今被众多大型网站采纳。 ### memcached 协议理解 `memcached`的设计...
- **静态内容加速**:对于不经常改变的静态内容,如图片、CSS、JavaScript 文件,可以预先缓存,提高页面加载速度。 - **减少计算成本**:如果计算过程耗时较长,可以将结果缓存,避免重复计算。 **4. memcached ...
Memcached 是一个高效、分布式的内存对象缓存系统,设计初衷是为了提升网站的访问速度,尤其是对于那些依赖数据库的动态网页应用。它通过建立一个内存中的大哈希表来存储各种类型的数据,如图片、视频、文件以及...
- **静态内容缓存**: 对于访问频繁的静态内容(如图片、CSS、JavaScript),可以直接从缓存中读取,避免了频繁的数据库查询。 - **数据库查询结果缓存**: 对于耗时的数据库查询,可以将结果缓存到Memcached中,减少...
Memcached 通过在内存中创建一个大型哈希表来存储各种类型的数据,如图片、视频、文件或数据库查询结果,以减少对数据库的直接访问,从而降低数据库负载,提高响应速度。 **工作原理与特点:** 1. **分布式存储**:...
2. **网站静态内容缓存**:例如HTML页面、图片、CSS、JavaScript等,减少用户等待时间。 3. **会话缓存**:保存用户的登录状态,避免每次请求都去数据库验证。 4. **分布式系统中的数据共享**:在分布式系统中,...
在"nginx+tomcat+memcached"的架构中,Nginx主要负责接收客户端请求,进行静态资源处理(如图片、CSS、JavaScript文件等),并转发动态请求到Tomcat。Nginx还能够实现负载均衡,通过轮询、权重分配等多种策略将请求...
Memcached 是一种开源(BSD 许可)、分布式、基于主内存的对象缓存系统,为跨网络上的独立节点提供统一的内存访问层。该技术通过在数据库和其他数据源之上增加一个缓存层来提高应用性能,减少对后端系统的负载。许多...
Tomcat集成Memcached是一项优化Web应用性能的技术,通过将用户的会话数据存储在分布式内存缓存系统Memcached中,可以显著提高高并发场景下的响应速度。以下是对配置步骤和相关参数的详细说明: 首先,你需要下载与...