本地内存和分布式缓存(面试)

本地缓存和分布式缓存

本地缓存 :缓存组件和应用在同一进程中 。但各应用都需要维护单独的缓存,无法共享缓存 。
分布式缓存 :缓存组件和应用分离,不在同一进程,多个应用可直接共享缓存。

本地缓存的实现

  • 缓存一般是一种key-value的键值对数据结构
  • 与此同时,本地缓存由于需要被并发读写,需要保证线程安全。由于 HashMap 不是线程安全的,而 ConcurrentHashMap 是线程安全的,一般使用 ConcurrentHashMap 实现 Java 编程中的本地缓存
    分布式缓存的实现:
    Redis和MemCached,但Redis优于MenCached,一般使用Redis
  • Redis 有着丰富的key-value 键值对的数据结构,如 Set 集合去重、有序集合 ZSet 实现数据排序等。
  • Redis 是单线程的,不存在高并发下线程安全问题,以及保证数据读写操作的顺序性
  • Redis 支持主从同步(读写分离)、集群分片拓展、数据持久化等特性,这也是 MemCached 不支持的

本地缓存和分布式缓存的优缺点

本地缓存的优缺点

  1. 访问速度快,但无法进行大数据存储
  2. 数据随应用进程的重启而丢失
    本地缓存的数据是存储在应用进程的内存空间的,所以当应用进程重启时,本地缓存的数据会丢失
    分布式缓存的优缺点
  3. 数据需要跨网络传输,性能较低.
  4. 支持大数据量存储,不受应用进程重启影响
    分布式缓存由于拥有自身独立的内存空间。应用进程重启后,分布式缓存的数据依然存在
相关推荐
bksczm5 分钟前
Redis数据结构之string
java·redis·mybatis
Shaoshing1 小时前
缓存一致问题及常见解决方案
java·缓存
码士集团小青1 小时前
Redis 缓存击穿(失效)、缓存穿透、缓存雪崩怎么解决?
数据库·redis·缓存
码士集团小青2 小时前
硬核 | Redis 布隆(Bloom Filter)过滤器原理与实战
数据库·redis·缓存
John_Hui2 小时前
CentOS7安装Redis
redis·centos7
一条泥憨鱼2 小时前
【Redis | 黑马点评】达人探店功能源码解读
数据库·redis·缓存
tianbin9113 小时前
批处理与微调辅助场景:Claude 中转并发、链路缓存与压测对比
java·开发语言·缓存
用户1549304485715 小时前
Redis 缓存与分布式锁:从 CAS 到 Lua
redis
2601_962071006 小时前
Claude 值不值得用?价格、缓存与 API 接入成本怎么算
人工智能·缓存