redis的科学用法

与MySQL数据库不同的是,Redis的数据是存在内存中的,它的读写速度非常快,每秒可以处理超过10万次读写操作,因此redis被广泛应用于缓存。

[TOC]

redis 的优点

  • 1.速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)
  • 2.支持丰富数据类型,支持string,list,set,sorted set,hash
  • 3.支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
  • 4.丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

推荐的 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 排行榜 -

redis 最适合的场景

  • 1.会话缓存(Session Cache)
  • 2.全页缓存(FPC)
  • 3.队列
  • 4.在主页中显示最新的项目列表。因为Redis使用的是常驻内存的缓存,速度非常快。
  • 5.按照用户投票和时间排序
  • 6.排行榜/计数器。Redis在内存中对数字进行递增或递减的操作实现的非常好。假定你是根据你用户的分数做递增的排序,如果你想返回用户及用户的分数,可以执行:
ZRANGE user_scores 0 10 WITHSCORES
Copyright © www.sqlfans.cn 2024 All Right Reserved更新时间: 2024-12-25 11:46:34

results matching ""

    No results matching ""