应用场景:
用户对象列表数据查询频率很高、需要把用户对象列表保存到缓存中。每次查询的时候无需再查询数据减轻数据库的压力
Memcached实现缓存列表对象:
假如列表对象很大、把整个列表对象作为一个大对象来缓存的话、每次获取的时候都要获取一个大对象、很浪费资源。
所以把列表对象分解成为多个对象来保存
缓存列表对象的步骤:
1、 封装列表对象:把用户对象ID列表缓存到列表对象中,用户对象ID指向用户对象
2、 以ID为key分别缓存用户对象保存到缓存中
3、 缓存对象经过分布式策略分别保存在不同的memcached服务中
获取用户对象列表的时候:获取用户对象ID列表、再根据ID逐个获取用户对象。
现在问题来了:
假如有一台memcached服务器down掉了。
1、 当我们根据用户对象ID列表来获取对象信息的时候可能就有一部分的对象是无法获取。
解决的方法一、根据用户对象ID打开一个数据库连接查询数据库、把对象数据补充到缓存中
好处:保证了数据的完整性、逐步恢复缓存数据
缺点:真正的应用中可能一台memcached服务里面保存有几百万甚至几千万条类似用户对象这样的对象。这样每个对象打开一次数据库连接就需要打开几百万次数据库连接甚至几千万次数据库连接。
解决方法二、当发现从缓存中获取对象列表的数据不完整、放弃缓存获取对象列表,直接从数据库获取、启动一个线程补充缓存中的用户对象
以上的解决方法都觉得不是很好、备忘一下
- 大小: 38.1 KB
分享到:
相关推荐
标题"memcached 64位 window"指的是在Windows操作系统上运行的64位版本的Memcached缓存系统。Memcached是一种分布式内存对象缓存系统,广泛用于减轻数据库负载,提高Web应用的性能。由于是64位版本,这意味着它可以...
Memcached是一款高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库的负载。它通过在内存中存储数据来提供快速的数据访问,从而提高应用的性能。本篇文章将详细讲解如何安装和配置memcached,...
在 Memcached 项目中,它可能包含安装步骤、配置选项、命令行参数、常见问题解答等内容。 总结,Memcached 是一个高效的分布式缓存系统,结合 libevent 可进一步提升性能。在Java环境中,可以使用 Spymemcached ...
在终端(也即cmd命令界面)下输入 ‘c:\memcached\memcached.exe -d install’ 安装 3. 再输入: ‘c:\memcached\memcached.exe -d start’ 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动...
标题“memcached服务器端memcached.exe 下载”指的是获取memcached服务端的可执行文件,`memcached.exe`是Windows环境下运行memcached服务的程序。这个绿色版的memcached意味着它无需安装,下载解压后即可直接运行,...
标题中的“Windows下memcached+memcached.dll 5.3.8”指的是在Windows操作系统上安装和使用Memcached服务的场景,其中`memcached.dll 5.3.8`是Memcached服务器的一个特定版本的动态链接库文件。Memcached是一款高...
### 安装memcached出现异常:具体问题及解决方案 #### 一、问题概述 在安装memcached的过程中,可能会遇到各种各样的错误。其中一种常见的情况是,在启动memcached服务时出现错误提示:“error while loading ...
解决Memcached过期问题的一种方法是修改源代码,确保在处理过期时间时考虑到时钟同步问题。例如,可以在客户端和服务端增加一个时钟漂移检查和校正机制,或者在设置过期时间时使用UTC时间,以减少因时区差异造成的...
9. **错误处理**:库内建了错误处理机制,包括网络错误、超时错误等,确保在出现问题时能够优雅地处理。 10. **性能优化**:Python-memcached库设计得非常轻量级,它使用最少的网络通信开销,以提高与Memcached...
Memcached 是一个高性能的分布式内存对象缓存系统,常用于减轻数据库负载,提高Web应用的响应速度。在本文中,我们将详细介绍如何安装和配置Memcached,以及如何查询其运行状态。 1. **安装Memcached** - 首先,你...
- `1.5.4`版本是一个稳定版,修复了前一版本中的已知问题,提高了系统的稳定性和性能。 2. **源码结构** - `memcached-1.5.4`源码包含多个主要目录:`src`存放核心代码,`doc`包含文档,`test`有测试用例,`...
**Memcached:高性能分布式内存缓存系统** Memcached是一款开源、高性能、分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升应用程序性能。它通过存储数据和对象到内存中,使得频繁访问的数据可以更快...
Memcached是一种分布式内存对象缓存系统,广泛应用于Web应用程序,以提高数据读取速度,减轻数据库负载。在PHP环境中,使用Memcached扩展可以方便地存储和检索数据,尤其适用于处理高并发场景。 `...
这不仅可以帮助我们了解Memcached的运行状态,还可以及时发现并解决性能问题,确保系统的稳定性和高效性。例如,通过监控Memcached的各项指标,可以了解其内存使用情况、命中率、请求处理速度等关键性能指标,从而...
标题中的"memadmin+php_memcached+memcached1.4.5"暗示了这是一个关于内存缓存管理...然而,由于这些组件都是较老的版本,使用时需要注意可能的安全问题和兼容性挑战,最好能升级到最新版本以获得更好的支持和安全性。
1. 负载均衡:在多台服务器上部署Memcached,通过一致性哈希或轮询等策略分配数据,避免热点问题。 2. 配置调整:合理设置内存大小、最大连接数、超时时间等参数,以适应不同业务需求。 3. 监控与日志:定期检查内存...
1. **下载Memcached**:首先,你需要从官方网站获取最新版的Memcached源码,或者在Windows环境下,可以直接下载编译好的`memcached.exe`。将`memcached.exe`放在一个方便的位置,例如`C:\Program Files`,并确保该...