redis的科学用法
[TOC]
推荐的 redis 使用方法
- 代码层面,应用服务应当具备合理的自动重连机制;
- 当redis启动时,从mysql从库读取所有表键值并存入redis;
- 读场景:读redis->没有,读mysql->把mysql数据写回redis,有的话直接从redis中取;
- 写场景:若并发不高的话,写mysql->成功,再写redis;若并发高则采取异步写,写入redis缓存就直接返回,定期或特定动作将数据保存到mysql,可以做到多次更新、一次保存;
- 设置expire失效时间,只将经常访问的数据缓存到redis,体现缓存的优势;
注:如果缓存中存储的数据量与mysql数据库的一致,那么就无法体现出缓存的优势了。给缓存中的每条数据设置一个过期时间,比如30秒,如果30秒后这条数据没有被第二次访问,就会在缓存中被删除。而如果30秒内,这条数据被再次访问了,那么就重新给这条数据设置一个过期时间。
以上方案的好处是:
- 当redis迁移或服务短期不可用的时候,不会影响到业务(短期内mysql连接数增多);
redis数据类型的典型应用场景
- redis数据类型的典型应用场景:
数据类型 | 应用场景 | 备注 |
---|---|---|
String | Session会话 | 常见用法 |
业务缓存 | 常见用法 | |
分布式锁 | - | |
Int | 计数器 | 常见用法 |
限流 | - | |
全局唯一ID | - | |
Hash | 电商购物车 | - |
Bitmap | 用户签到 | - |
List | 消息队列 | - |
ZSet | 排行榜 | - |