以前打算写一个memcache客户端图形化的管理工具,由于时间太忙和其他,后来不了了之。当然至于项目中,确实也从没有用过它。
目前做的项目关于游戏,进行游戏接入时需要些必要的验证。打算把某些东西放入到memcache缓存中。多台服务器共享数据。杯具的事发生了:
今天打算把一个自己封装好的JavaBean,先序列化,然后set到memcache。自己本系统可以放可以取到JavaBean。但是自己随后建立了另外一个Java项目再测试,取此JavaBean时,竟然什么都没有。
服务器上查看,确实又存在。我随后在原来项目中再设置了一个普通的数值,在新Java工程中却又可以取到。
随后我又在别人机器上测试。那个bean还是取不到。我叫别人设置一个JavaBean,看看我这能取到没?结果我也取不到别人的,然后叫别人设置一个普通的数据,却又可以取到。
能够找的错误都找遍了,什么客户端jar问题,过期时间问题,序列化Id问题。。。。
杯具一直萦绕在身上,最后忍不住真想大喊一声TMD,郁闷的要死,感觉很奇怪,心理一直念三字经,烦躁了很久
本来早就打算以后不干程序,结不解决问题都无所谓,可以避开,但是,总不能现在就当回避问题,本着不到黄河不死心,不到长城非好汉的精神。我随后在其他机器建立,不同的项目.......省略N多过程
。
总之最后是找到了根本原因,从memcache取此bean时,需保证此当前项目中的bean和源项目中的bean什么都一样。连包名都不能改。但是原来好像记得序列化都可以保存到文件中,所以才认为对包没有那么限制。我就是因为包名不同,才导致N多的杯具发生(当然这个杯具完全可以不碰的,因为不论set和get都是一个系统中,也不存在什么一个JavaBean放两个位置。但是为了学习,别人弄出来了,就深究下去了)。一直想不到序列化要求的这么严格。我不是同一个项目bean换个位置都不行。还一直怀疑memcache应该不需要这么严。哎!!
到最后花了我几个小时,不过,总算是找到原因了
。
分享到:
相关推荐
当应用需要数据时,首先尝试从Memcache中获取,如果存在则直接返回,不存在则从数据库中读取并存入Memcache,这一过程被称为缓存命中和缓存未命中的处理。Memcache采用哈希表结构,确保了高效的键查找,同时支持多...
6. **内存管理**:Memcache会自动管理内存,但当内存不足时,使用LRU(Least Recently Used)策略淘汰最不常用的数据。 7. **性能优化**:可以通过调整Memcache服务器的配置参数,如最大连接数、内存分配等,优化其...
- **memcache.max_failover_attempts**: 定义了在故障转移时尝试连接服务器的最大次数,与memcache.allow_failover配合使用,确保系统在面对单一服务器故障时仍能保持服务连续性。 - **memcache.chunk_size**: 数据...
Memcache 使用手册 Memcache 是一种高性能的内存键值缓存,它可以为应用程序提供高速的数据访问。Memcache 服务可以通过应用程序...但是,在使用 Memcache 时需要考虑到缓存的策略和实现细节,以确保缓存的正确使用。
Memcache是一个广泛使用的开源高性能分布式内存对象缓存系统,它能够通过在内存中存储数据来减少对数据库的访问,从而提高Web应用的性能。 描述中的"windows下memcache安装包 附带php扩展包"揭示了这个压缩包不仅...
- **创建Memcache客户端Bean**:在配置文件中,除了`memcachedPool`之外,还需要创建一个名为`memcachedClient`的Bean来实际操作Memcache。这一步虽然在给出的部分内容中没有完全展示,但通常会涉及使用`...
在实际开发中,使用.NET驱动与Memcache交互时,通常需要以下步骤: 1. 添加引用:在项目中引入相应的Memcache客户端库。 2. 连接配置:设置连接字符串,包括服务器地址、端口等信息。 3. 初始化客户端:创建并初始化...
压缩包中的`MemCache使用.txt`文档可能包含了安装、配置和测试的详细步骤,以及如何监控MemCache的性能。通常,我们可以通过以下方式进行测试: 1. **命令行测试**:使用telnet命令行工具连接到MemCache服务器,...
在本文中,我们将深入探讨Memcache的核心原理、功能、使用场景以及常见操作。 ### 一、Memcache简介 Memcache最初由Danga Interactive公司开发,现已成为开源项目,被许多大型网站如Facebook、Twitter等采用。它的...
- 自动压缩:当数据超过一定大小时,Memcache会自动进行压缩,以节省内存空间。 **5. Memcache与Memcached的区别** 虽然名字相似,但两者并不完全相同。Memcache是C编写的客户端/服务器缓存系统,而Memcached是其...
这样,Memcache将在每次开机时自动启动。 **二、Memcache的基本设置与管理** Memcache提供了多种命令来管理服务: - `-p`:指定监听的端口号,默认是11211。 - `-l`:定义绑定的IP地址,默认为本机。 - `-d start...
Windows Memcache的安装和.NET使用是许多开发者在构建基于Windows的Web应用程序时需要掌握的技术。本文将深入探讨Windows环境下如何安装Memcache,以及如何使用.NET与Memcache进行交互,同时也会提及相关的动态库。 ...
7. **安全性**:使用memcache时要注意数据安全性,因为缓存的数据通常是以明文形式存储的,避免存储敏感信息。 8. **监控与调试**:可以通过memcached自带的管理工具或者第三方工具监控memcached服务器的性能,如`...
使用Memcache扩展可以显著提升动态网站的性能,尤其是处理大量读取请求时。不过要注意,Memcache不支持数据持久化,一旦服务器重启,所有缓存数据将丢失。若需要持久化的缓存解决方案,可以考虑使用Memcached或Redis...
在Java环境中,为了使用Memcache服务,我们需要引入特定的jar包来提供客户端支持。"memcache所需要的jar包"这个标题暗示我们将讨论与Java环境下的Memcache客户端库相关的知识点。 1. **Memcache的基本概念** - ...
Memcache是一种广泛使用的分布式内存对象缓存系统,它可以在服务器集群间通过网络共享小块内存,从而提升应用程序的性能,减少数据库负载。在PHP中,我们通常使用php_memcache.dll扩展来与Memcache服务器进行交互。...
在安装Memcache之前,首先需要确认系统中是否已经安装了Memcache。可以通过命令行工具检查端口使用情况来判断: ```bash netstat -an ``` 如果输出结果中包含端口号11211,则表示已有Memcache服务正在运行。此时,...
以下将详细介绍如何在Windows 7环境下安装和使用Memcache。 首先,你需要确保你的计算机上已经安装了PHP环境。这里提到的PHP版本是5.4,这意味着我们需要的是与该版本兼容的Memcache扩展。在给定的文件列表中,`...