Redis使用心得

1.Redis适合做什么,不适合做什么?

Redis是分布式缓存,不要把它当数据库使用。它的增删改查不如MySQL好用,也不能保证绝对安全的持久化。

2. 架构选型

读写分离主节点宕机从节点自动顶上数据分片可横向扩展
单点NNNN
主从YNNN
哨兵YYNN
clusterYYYY
  • 除了以上各种模式,也可以选择阿里云提供的Redis服务,模式可选单点、主从、cluster等多种,底层内置proxy,使用起来使用单点,很方便。
  • 如果是做游戏全球化部署,还可以考虑阿里云的Redis全球化缓存,全球各地部署,能最小化Redis延迟,各节点之间自动同步,底层使用的是cluster。

3. 是否需要代理

根据实际需求,加代理的好处是:

  • 方便客户端代码编写,无论后端是cluster还是其他模式,写法统一。
  • 后端扩容、迁移,客户端无感知。

常见的Redis代理实现有:Twemproxy,predixy,redis-cluster-proxy,CodisProxy等。如果用阿里云的Redis服务,其内置了代理。

4. 持久化方式选择

AOFRDB
定义追加方式全量快照方式
占用空间
重启恢复速度
持久化时机每次修改或每秒一定时间内达到修改次数
数据安全性
其他数据量大时fork()很耗CPU

两种方式都会影响Redis性能,具体使用哪种根据实际需求决定。

  • 如果需要数据库级别的安全性,那么两种方式同时使用
  • 如果可以容忍一段时间数据丢失,那么可以只使用RDB
  • 不推荐只使用AOF,因为RDB恢复的速度更快

5. 避免大key出现

大key是指单个key对应的数据结构中数据量太大,它会导致读写严重超时。解决办法是:将原key对应的内容分散到不同key中存储,例如游戏中设置新key为原key+playerId。

6. 批量操作请用pipeline

使用pipeline可以将一系列命令打包传输到服务端,显著减小RTT。

7. Redis版本选择

版本主要特性
2.8Sentinel生产可用
3.0Cluster功能
4.0模块系统
5.0新的流数据类型
6.0多线程IO
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值