redis概述

Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

与MySQL数据库不同的是,Redis的数据是存在内存中的。它的读写速度非常快,每秒可以处理超过10万次读写操作。因此redis被广泛应用于缓存,另外,Redis也经常用来做分布式锁。除此之外,Redis支持事务、持久化、LUA 脚本、LRU 驱动事件、多种集群方案。

Redis 的优点

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

Redis 常见性能问题

常见问题 描述 建议
Master写内存快照 save会阻塞主线程的工作,当快照比较大时对性能影响是非常大的,会间断性暂停服务 建议Master不要做任何持久化工作,包括内存快照和AOF日志文件
Master AOF持久化 AOF文件不断增大会影响Master重启的恢复速度 若数据关键,建议Slave开启AOF备份数据,策略为每秒同步一次
Master调用BGREWRITEAOF重写AOF文件 AOF在重写的时候会占大量的CPU和内存资源,可能会出现短暂服务暂停现象 建议Master不要做任何持久化工作,包括内存快照和AOF日志文件
主从复制不要用级联结构 不推荐使用级联结构 单向链表结构更稳定,即:Master <- Slave1 <- Slave2 若Master故障了启用Slave1做Master
主从复制的性能问题 为了提高主从复制的速度和连接的稳定性 建议Master和Slave在同一个网段

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更新时间: 2023-05-16 09:22:31

results matching ""

    No results matching ""