Redis 使用进阶

Redis使用场景


  • 缓存——热数据:配合关系型数据库做高速缓存
  • 计数器:统计点击数等应用
  • 队列
  • 最新项目列表
  • 排行榜,取TOP N操作

同类产品


  网络IO模型 内存管理 数据一致性 存储
Redis 单线程的IO复用模型 现场申请内存池的方式 提供了事务的功能,保证一串命令的原子性 除了Key-Value,还支持list, set, sorted set, hash数据结构
Memcached 多线程,非阻塞IO复用的网络模型 预分配的内存池方式 提供了CAS命令 简单的Key-Value,不支持持久化和复制

大公司使用情况


  • Airbnb
  • Uber
  • Twitter
     

支持的集合


string 计数功能
hash 存储对象
list 简单的消息队列,或者分页
set 全局去重
sorted set Top N

事务机制


  • MULTI
  • DISCARD
  • EXEC
  • WATCH

使用时注意


  • rdb/aof Backup:不仅用作cache,而更为一种k-v存储,他完全替代了后端的存储服务(MySQL),所以备份是非常必要的
  • Small item & Small instance:由于Redis单线程的模型,大的数据结构list, sorted set, hash set 的批量处理就意为着其他请求的等待,故使用Redis的复杂数据结构一定要控制其单key-struct的大小。
  • Redis Sentinel:高可用

LUA支持


  • Redis在 2.6版本开始就支持lua
  • 为什么Redis需要LUA:为了性能以及事务的原子性

猜你喜欢

转载自blog.csdn.net/rss169/article/details/83240272
今日推荐