在实现业务时,很多情况通常使用memcached,用以减轻DB压力.但我们get数据时,有时会返回false.返回false的情况有很多种.对于业务来说,需要区别两种状态.1.正常的,当前key我并未设置,或者已经过期.2.不正常.服务问题(如,服务器挂掉, timeout,and so on.) 对于第一种情况,业务通常在重新设置key.对于第二两情况,至少应该报警,抛异常等等.
其实对于memcache,是有返回状态码的.通过getResultCode来获取.其定义的看以下链接.
Memcache 预定义常量
1 <?php
2 $m = new Memcached();
3 $m->addServer('localhost', 8012);
4 $key = "liuyungu_test";
5 $a = $m->get($key);
6 var_dump($m->getResultCode());
key存在并正常获取的话,code为0.Memcached::RES_SUCCESS
key不存在或者过期,并正常获取的话,code为16.Memcached::RES_NOTFOUND
指向一个没有服务的服务器,code为26 Memcached::RES_ERRNO
没有设置服务器,code为20 Memcached::RES_NO_SERVERS
操作超时,code为31,Memcached::RES_TIMEOUT
分享到:
相关推荐
2. **键值对存储**:Memcached采用键值对(Key-Value)的方式来存储数据,键用于唯一标识一个数据项,值则是对应的数据内容。 3. **分布式架构**:Memcached支持多服务器集群,通过一致性哈希算法,将数据分散到多...
Memcached 使用基于键值对(Key-Value)的数据存储模式,它将数据存储在内存中,以减少对硬盘I/O操作的依赖。当客户端请求数据时,Memcached 会首先尝试从内存中查找,如果找到则直接返回,否则将查询结果存储并返回...
压缩包中的`memcached.exe`是Windows版的Memcached服务器,可以通过命令行启动或设置为系统服务自动启动。 - 运行`memcached.exe -d install`来安装服务,然后使用`memcached.exe -d start`启动服务。 2. **配置...
Memcached测试工具类通常包含了各种方法,用于模拟不同的操作场景,例如设置(key-value)对、获取存储的数据、删除键值、检查缓存命中率等。这些测试类帮助开发者验证Memcached服务器的正确性和性能,确保在实际生产...
启动Memcached服务时,通常需要设置一些参数来满足特定的应用需求。例如,调整内存大小、端口号等: ```bash /usr/local/bin/memcached -p 11211 -m 64m -d ``` 其中: - `-p`:指定监听的端口号,默认为11211; -...
4. **协议简单**:Memcached使用基于文本的简单协议,允许客户端通过TCP/IP连接与服务器进行交互,如设置、获取、删除等操作,降低了开发难度。 Memcached的应用场景: 1. **Web应用加速**:对于动态生成的内容,...
4. **故障恢复**:当 Memcached 服务端宕机后,Java 客户端可能会遇到连接问题,需要有适当的重试机制。 总之,Memcached 项目为开发者提供了一个高效、易用的缓存解决方案,通过 Java 客户端可以轻松地在 Java ...
4. **持久化**:Memcached默认不提供持久化功能,一旦服务重启或服务器故障,内存中的数据将丢失。但在实际应用中,可以通过外部工具实现数据的定期备份。 5. **一致性哈希**:为了在节点添加或移除时尽量减少数据...
1. **Memcached基础**:首先,教程可能会介绍memcached的基本概念,如其内存存储模型、key-value结构,以及它如何提供快速的缓存服务。 2. **Session管理问题**:在Web开发中,session管理是关键,特别是在高并发...
分布式缓存客户端MemcachedProviders是IT领域中一种用于提高应用程序性能和可伸缩性的关键工具。Memcached是一种广泛使用的开源高性能、分布式内存对象缓存系统,它可以存储数据并提供高速访问,减轻数据库负载,...
3. 操作缓存:使用Java API进行增删查改操作,如`set(key, expireTime, value)`用于设置缓存,`get(key)`用于获取缓存,`delete(key)`用于删除缓存。 4. 序列化和反序列化:由于Memcached只支持基本数据类型,对于...
Memcached的数据结构相对单一,仅支持key-value形式的数据,这意味着它适用于简单的缓存场景。Redis提供了更丰富的数据结构支持,如list、set、hash等,使得它能够执行更复杂的数据操作,减少了网络IO次数。而...
4. **性能优化**:`Memcached`支持设置过期时间,可以设定Session的生命周期,防止长时间未使用的Session占用过多内存。另外,由于`Memcached`是基于Key-Value的存储,因此可以轻松实现Session的查找和删除操作。 5...
通过这些统计数据,你可以监控Memcached的性能和资源使用情况,以便进行优化和故障排查。 总的来说,安装和配置Memcached涉及下载正确版本、安装服务、设置内存限制以及通过telnet查询服务状态。理解并熟练掌握这些...
1. **分布式**: Memcached支持多服务器环境下的数据分发,可以通过一致性哈希算法将数据均匀地分布到各个服务器节点上,避免了单点故障。 2. **内存存储**: 数据完全存储在内存中,没有持久化机制,这意味着一旦...
3. **键值对存储**:memcached采用键值对(key-value)的存储方式,简单且易于操作。 4. **轻量级**:memcached的程序体积小,资源消耗低,对硬件要求不高。 5. **跨平台**:支持多种操作系统,包括Windows、Linux、...
- 过期机制:数据可以设置过期时间,访问时检查key的时间戳决定是否有效。 6. Memcached内存管理机制原理: - Slab Allocation:内存被划分为多个大小固定的块(slabs),每个slab包含多个chunk(数据存储单元)...
1. **基本测试**:使用telnet客户端连接到Memcached服务器,比如`telnet localhost 11211`,然后可以尝试设置和获取键值对,如`set key 0 0 5`后回车,再输入`value`后回车,最后用`get key`获取刚才存储的值。...
- 存储和检索数据:使用提供的API进行数据的存取,如`set(key, value, timeout)`来设置键值对,`get(key)`来获取键对应的数据。 - 关闭连接:在不再需要使用Memcached时,记得关闭客户端连接。 在实际应用中,...