分布式缓存(memcached)的数据同步问题
两台服务器:一台是memcached服务器,另外一台是自己写的逻辑服务器。
逻辑服务器只做逻辑运算,memcached缓存用户数据,逻辑服务器需要数据的时候就从memcached上面获取,并暂时缓存到本地,修改完用户数据后,再保存到memcached服务器,并清空本地的该数据。
这样会有一个问题,逻辑服务器的多个线程同时修改memcached上的一个用户数据的时候,会存在并发问题,可能导致memcached上面的数据被覆盖。
我的想法是在逻辑服务器这边给用户数据加一个锁,要修改某个用户数据的时候,先获取该用户的锁,然后再取memcached上面取到数据,然后修改数据,然后保存到memcached,然后释放锁。
感觉这种方式效率可能会比较低,不知道有没有更好的实现方式,请各位高手指点!
逻辑服务器只做逻辑运算,memcached缓存用户数据,逻辑服务器需要数据的时候就从memcached上面获取,并暂时缓存到本地,修改完用户数据后,再保存到memcached服务器,并清空本地的该数据。
这样会有一个问题,逻辑服务器的多个线程同时修改memcached上的一个用户数据的时候,会存在并发问题,可能导致memcached上面的数据被覆盖。
我的想法是在逻辑服务器这边给用户数据加一个锁,要修改某个用户数据的时候,先获取该用户的锁,然后再取memcached上面取到数据,然后修改数据,然后保存到memcached,然后释放锁。
感觉这种方式效率可能会比较低,不知道有没有更好的实现方式,请各位高手指点!
...全文
相关推荐
云平台技术选型之五:分布式缓存
分布式缓存系统如 Memcached 和 Redis 在数据类型支持、持久化能力、数据同步和高可用设计等方面都有各自的优势和局限。
memcached缓存
**缓存命中率**:监控和调整缓存策略,确保高命中率,降低无效的数据库查询。3. **数据一致性**:memcached不保证强一致性,需要在应用层处理数据同步问题。4.
阿里软件java版memcached安装文件和demo项目
**性能优化**:在Java项目中使用Memcached时,需要考虑缓存策略(如LRU、LFU)、过期策略、数据同步等问题,以达到最佳性能。9.
基于Canal实现MySQL与多种NoSQL数据库包括RedisMemcachedMongoDB等之间实时数据同步与缓存增强的高性能分布式系统_该项目通过解析MySQL的b.zip
Memcached同样是一款优秀的分布式内存对象缓存系统,它与Redis相似,但更专注于提供高速缓存。
memcached核心面试题目汇总,供大家参考
**Memcached核心概念**Memcached是一款高性能的分布式内存对象缓存系统,用于临时存储(缓存)中间结果或数据,以减少对数据库的访问压力。


