Redis分布式缓存

什么是缓存(Cache)

1.定义:就是计算机内存中的一段数据
2.特点:读写快,断电即失

3.缓存解决的问题:

  • 提高网站吞吐量和运行效率
  • 减轻数据库访问压力
  • 注意使用缓存时一定是数据库中数据极少发生修改,更多用于查询这种情况 比如收货地址等

4.本地缓存和分布式缓存区别:

  • 本地缓存:存在应用服务器内存中的数据称为本地缓存
  • 分布式缓存:存储在当前应用服务器内存之外的数据称为分布式缓存
  • 集群:将同一种服务的多个节点放在一起共同对系统提供服务的过程称之为集群
  • 分布式:有多个不同服务集群共同对系统提供服务,就称为分布式系统

在这里插入图片描述

利用mybatis中自身本地缓存结合redis实现分布式缓存

  • mybatis中应用级缓存(二级缓存) SqlSessionFactory级别缓存 所有会话共享
  • mybatis二级缓存也就是本地缓存,在xml文件中用标签开启,在第一次查询完数据库后会把数据加入到缓存中,之后查询相同的数据会先走缓存
  • mybatis结合redis解决了缓存穿透的问题:如果查询了数据库中不存在的值,会在缓存中存储一个null值返回,之后无论查多少次都会返回这个null值,而不用再次经过数据库
  • 查看Cache标签缓存实现:mybatis底层默认使用的是org.apache.ibatis.cache.impl.PerpetualCache实现
  • 自定义RedisCache实现
    - 1.通过mybatis默认Cache源码可知,可以使用自定义Cache类,通过实现Cache接口,并对里面的方法进行实现
    - 2.使用RedisCache实现 《cache type=“xxxx.RedisCache” /》 (全路径名)
    工具类
package com.baizhi.cache;

import com.baizhi.util.ApplicationContextUtils;
import org.apache.ibatis.cache.Cache;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;

public class RedisCache implements Cache {
   

    //当前放入缓存的mapper的namespace
    private final String id;

    //必须存在构造方法
    public RedisCache(String id) {
   
        System.out.println(id);
        this.id = id;
    }

    //返回cache唯一标识
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis 是一种高性能的内存键值存储系统,常用作分布式缓存。它支持多种数据结构,如字符串、哈希、列表、集合和有序集合,并提供了丰富的操作命令和功能。 在分布式缓存中,Redis 可以通过搭建 Redis 集群来实现高可用和扩展性。Redis 集群使用哈希槽分片的方式将数据分散存储在多个节点上。每个节点负责管理一部分哈希槽,并与其他节点进行数据交互和同步。这样,当需要查询或写入数据时,客户端会根据键的哈希值将请求发送到相应的节点上,从而实现分布式的数据存储和访问。 使用 Redis 分布式缓存可以带来以下好处: 1. 高性能:Redis 的数据存储在内存中,读写速度非常快,适用于对响应时间要求较高的场景。 2. 高可用性:通过搭建 Redis 集群,即使某个节点发生故障,系统仍然可以继续正常工作。 3. 扩展性:可以根据需求增加节点数量,实现横向扩展,提高系统的处理能力。 4. 数据持久化:Redis 支持将数据持久化到磁盘,以防止数据丢失。 当使用 Redis 分布式缓存时,需要注意以下事项: 1. 数据一致性:由于 Redis 集群会将数据分片存储在不同节点上,需要确保数据的一致性,可以使用一致性哈希算法来解决这个问题。 2. 故障处理:当某个节点发生故障时,需要及时进行故障转移,将故障节点的数据迁移到其他正常节点上。 3. 客户端的负载均衡:需要在客户端实现负载均衡的策略,将请求均匀地分发到不同的节点上,以提高系统的整体性能。 总之,Redis 分布式缓存提供了高性能、高可用性和可扩展性的解决方案,可以用于加速应用程序的数据访问并提高系统的吞吐量。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值