多级缓存分析篇(一) 多种Redis Client配置异同

1 导言

我们常常需要在项目里做一些数据的缓存、比如存储较为静态化的数据或设计二级缓存以便来减少API接口QPS过大对服务端的压力、避免对后台数据库造成冲击甚至压垮。除了本地缓存像spring cache和guava cache外,Redis是简单的KV分布式数据库,很好的解决了单机的Java锁不能解决的问题,所以很受青睐。但怎样使用才能发挥最大效果呢?很多时候开发人员只是会用简单的增删改查操作、只了解CacheManager,遇到生产环境异常或集群故障就难以排查了。所以,对Redis和本地缓存原理的理解就非常重要,日常工作可能都偏重于使用,缺乏分析原理性。因此,考虑写这个篇章分享经验所得,期望能给到大家参考。

官方文档redis中文官方网站还是首要推荐大家去学习,只有理解了原理,才能融会贯通来设计业务和系统架构方案、用到多种场景下,发挥好多级缓存的作用。在设计时多花点心思,可以避免上线生产环境后出现很多坑。

由于Redis客户端组件有很多种包已经实现、各有优势,这里主要对多种Redis配置异同简单归纳整理出来。另外,很多开发同学对Spring本地Cache的机制不是很清晰,这里也做下源码分析,以便更好的使用spring-data和分析故障。

2 总览&目录

多级缓存分析篇(一) 多种Redis配置异同

多级缓存分析篇(二) 分布式锁应用分析

多级缓存分析篇(三) Spring本地缓存源码分析

3 Redis多种Client配置异同

3.1 原生redis client或jedis配置 

依赖主要是redis或jedis原生包。

包括redis连接(单机版本Host和Port、集群版本cluster.nodes)、常用增强配置项。

##redis数据库的相关配置
##连接地址ip
redis.addr = ip
##端口号
redis.port = 6379
##访问密码
redis.auth = 密码
##控制一个pool最多可以有多少个状态为Idle(空)的jedis实例默认值为8
redis.maxIdle = 200
##可用的最大连接实例数 默认为8
redis.maxActive = 1024
##等待可用连接的最大时间单位为毫秒  默认为-1表示永不超时,一旦超过等待时间则直接抛出
redis.maxWait = 10000
redis.timeOut = 10000
##设置为true则会在borrow一个jedis实例时,提前做validate操作
redis.testOnBorrow =true
##连接最小空闲时间(毫秒)
redis.minEvictableIdleTimeMillis=1800000
##释放连接的扫描间隔(毫秒)
redis.timeBetweenEvictionRunsMillis=30000
##每次释放连接的最大数目
redis.numTestsPerEvictionRun=1024
##最大连接数
redis.maxTotal=30
##在空闲时检查有效性, 默认false 
redis.testWhileIdle=true
##连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true
redis.blockWhenExhausted=false

3.2 spring框架下的redis或lettuce使用

依赖主要是spring-boot-starter-data-redis包或spring-data-redis包。

包括:连接(单机版本Host和Port、集群版本cluster.nodes)、常用增强配置项。

不同的是,前缀必须是spring.redis,lettuce可选但性能较高些、是springboot官方推荐的。

spring:
  redis:
    #数据库索引
    database: ${REDIS_DB:0}
    #host: ${REDIS_HOST:10.251.76.39} #redis单机情况
    #port: ${REDIS_PORT:7001}
    password: ${REDIS_PWD:mypassword}
    cluster:						  #redis集群情况
      nodes: 10.251.76.39:7001,10.251.76.21:7002,10.251.76.22:7003
    #连接超时时间
    timeout: 5000
    lettuce:
      pool:
        max-idle: 1000
        min-idle: 50
        max-active: 2000
        max-wait: 4000

好了,配置就简单列到这里,下一讲谈谈基于Redis的分布式锁 多级缓存分析篇(二) 分布式锁应用分析,欢迎来交流留言~~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值