Redis缓存异常处理以及淘汰策略

缓存的概念

缓存是介入应用程序和物理数据之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高应用的运行性能

缓存内的数据对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻会同步缓存数据和物理数据源的数据。

比如我们通常是直接查询MySQL数据库,那么在高并发情况下,大量查询MySQL数据库会导致数据库性能变慢。

因此我们在应用层与MySQL之间搭建一个Cache层,让请求先访问Cache,这样能大大的降低数据库的压力,提高性能

分布式缓存

简单来说,缓存系统能跨进程我们就称为分布式缓存

在分布式系统开发中,系统与系统之间都是属于进程级别,缓存系统也能跨进程叫分布式缓存,市面上分布式技术有MemcachedRedis 这两种,二者区别大致如下:

性能

  • Redis是单核的
  • Memcahed是多核的

内存空间和数据大小

  • Memcached : 可以修改最大内存大小,进行LRU算法进行淘汰
  • Redis : 不仅可以修改最大内存,因为redis的缓存是存储内存上的,一些数据可以通过VM的特性突破物理空间的限制。(可以理解:外挂一个磁盘当做数据存储源使用)

操作比较

  • Memcacehd : 操作比较单一,只有一种数据类型String,用来缓存。
  • Redis : 支持比较丰富的数据类型,(String、哈希、集合、有序集合等),比如做一些签到、附近的人都可以(用bitmap、geo实现),减少服务端的操作,减少IO读写。

可靠性

  • Memcacehd :不支持持久化 ,断电重启数据就丢失,只能做缓存使用(需要重新从关系型数据库获取)
  • Redis : 支持持久化 (RDB、AOF的2种机制) ,从持久化的数据磁盘加载并保存到缓存上,能处理单点故障、设置主从、集群、哨兵等机制。

应用场景

    • 0
      点赞
    • 1
      收藏
      觉得还不错? 一键收藏
    • 0
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值