一文了解大数据下 Redis 的应用( 二 )
缺点:需要使用ruby进行部署 , 配置相当麻烦 , 维护不方便
文章图片
文章图片
配置示例:
spring :redis :password :cluster :nodes : 192.168.1.3:6379,192.168.1.4:6379,192.168.1.5:6379max-redirects : 3lettuce :pool :max-idle : 16max-active : 32min-idle : 82.4 cachecloud
cachecloud是一套解决方案 , 实现多种类型(Redis Standalone、Redis Sentinel、Redis Cluster)自动部署、解决Redis实例碎片化现象、提供完善统计、监控、运维功能、减少运维成本和误操作 , 提高机器的利用率 , 提供灵活的伸缩
优点:
使配置更简单 , 集群节点不再由客户端维护 , 配置一个domain即可自动获取节点列表
配置示例:
spring :domain : cachecloud.server1.com:8080remote :ecredis :appid : 2type : clouduri :db : 1maxIdle : 10minIdle : 5maxActive : 10password : GpG4fZoxsp7cTB5fkeyPrefix : 'ERP:EXPORT-CENTER:'
应用案例:
文章图片
文章图片
2.5 redis存储方案选型
吞吐量数据量较少、数据安全性不高:单机模式或者分片模式
吞吐量数据量较大、数据安全性较高:哨兵模式、集群模式
吞吐量数据量大、数据安全性高、扩展性强:集群模式
3、性能优化 3.1 日志优化
Redis日志存储模式分为两种:RDB和AOF , RDB为实时写入磁盘 , AOF为延迟批量写入磁盘
RDB模式:
优点:实时存储日志 , 在数据恢复方面更有优势
缺点:磁盘IO比较频繁 , 会影响redis的吞吐能力
AOF模式:
优点:定时批量刷新日志到磁盘 , 适合高吞吐的场景 , 对redis性能影响较小
缺点:如果某一个时刻redis发生故障 , 可能会丢失内存中的数据 , 故障恢复的时候恢复不了这部分数据
模式选择:
如果吞吐量较小 , 使用RDB即可 , 吞吐量较大 , 可以选择AOF来提高性能 , 两种方式根据具体场景来选择
AOF配置:
appendonly yes #aof文件名设置 appendfilename "appendonly-${port}.aof" #配置选择 appendfsync everysec dir /bigdiskpath #不开启aof重写 , 因为太消耗性能 no-appendfsync-on-rewrite yes
AOF重写:分析当前redis中key对应的值来优化指令 , 来减少磁盘空间和压力 , 但因为需要判断合并逻辑 , 会有很大的性能开销 , 一般不开启aof重写
# 假设服务器对键list执行了以下命令; 127.0.0.1:6379> RPUSH list "A" "B" (integer) 2 127.0.0.1:6379> RPUSH list "C" (integer) 3 127.0.0.1:6379> RPUSH list "D" "E" (integer) 5 127.0.0.1:6379> LPOP list "A" 127.0.0.1:6379> LPOP list "B" 127.0.0.1:6379> RPUSH list "F" "G" (integer) 5 127.0.0.1:6379> LRANGE list 0 -1 1) "C" 2) "D" 3) "E" 4) "F" 5) "G" 127.0.0.1:6379>
正常AOF会把前面的6条写入命令都存入日志中 , AOF重写会先去redis获取list的值 , 发现是["C","D","E","F","G"] , 然后生成一条 RPUSH list "C" "D" "E" "F" "G" 来代替前面6条
3.2 缓存更新策略
redis默认情况下就是使用LRU策略的 , 因为内存是有限的 , 但是如果你不断地往redis里面写入数据 , 那肯定是没法存放下所有的数据在内存的
(1)noeviction: 如果内存使用达到了maxmemory , client还要继续写入数据 , 那么就直接报错给客户端
(2)allkeys-lru: 就是我们常说的LRU算法 , 移除掉最近最少使用的那些keys对应的数据(最常用的)
(3)volatile-lru: 也是采取LRU算法 , 但是仅仅针对那些设置了指定存活时间(TTL)的key才会清理掉
(4)allkeys-random: 随机选择一些key来删除掉
(5)volatile-random: 随机选择一些设置了TTL的key来删除掉
- 三星exynos2200面世:超大核+3颗大核+4颗小核
- 线上新书发布!云上带你了解有关“冬奥”的那些事儿
- 2022首场工业数字化供需对接大会举办
- nvidia宣布扩大gsp处理器开放范围
- 我的世界大闹天宫龙宫怎么玩(我的世界大闹天宫龙宫打法技巧一览)
- 复苏的魔女魔导装备boss怎么打(复苏的魔女魔导妨害装备获取攻略大全)
- 斗罗大陆魂师对决魂力怎么入手(斗罗大陆魂师对决魂力获取方法介绍)
- 复苏的魔女恐惧之馆怎么玩(复苏的魔女恐惧之馆玩法攻略大全)
- 幻境公主兑换码有哪些(幻境公主礼包码大全)
- 就在周日,济南这家大型购物商场,有大优惠
