Redis——特性

特性

  • 数据存储模型:以键值对(Key-Value) 存储,属于非关系型数据库;区别于 MySQL 这类表与表存在关联的关系型数据库。

  • 存储介质:主打内存级数据库,以内存为主要存储媒介,磁盘仅用作辅助持久化。

  • 性能特点:相比 MySQL 等磁盘数据库,读写速度极快。

  • 数据持久化:虽基于内存运行,但支持数据落盘持久化,防止断电数据丢失。

  • 集群部署:原生支持集群模式,可分布式部署在多台服务器。

  • 高可用机制:支持主从架构,主节点故障时,从节点可自动顶替,保障服务高可用。

  • 操作方式:支持原生命令行操作,同时兼容 Lua 脚本,可实现批量命令、原子化复杂操作。

  • 可扩展能力:支持使用 C、C++、Rust 等语言开发Redis 扩展,自定义新数据结构;本质是编译为动态链接库加载运行


redis的用处

  • 数据库:内存级数据库(内存是主要的存储硬件,磁盘用于持久化)
  • 缓存:比如存储冷热分离架构的热点数据,或者会话存储(负载均衡下把所有会话信息保存在Redis服务器中,防止用户需要在不同服务器上登录多次的逻辑缺陷)
  • 中间件:做消息队列服务器进行削峰填谷解耦合

redis为什么快

  • 它是访问内存为主,磁盘为辅
  • 它逻辑简单,不像Mysql一样要有很多逻辑处理比如关联关系的处理,或者事务的完全支持
  • Redis使用epoll模型而不是多线程,网络IO效率高,因此消耗资源少的同时反应速度也较快(因为不用进行调度而是直接在用户层遍历读取)
  • Redis使用单线程模型执行命令,避免了不必要的锁竞争和线程调度开销(多线程提高效率是因为自己执行的是CPU密集任务,调度和加锁的消耗比不上充分利用了CPU多核资源的收益。而Redis只操作数据结构,加锁以及调度的开销甚至超过了并行操作本身节省下来的时间,收益比不上消耗)

使用redis的方式

redis是客户端-服务端架构,使用redis的方式如下:

  • 命令行
  • 图形化界面
  • API(程序中使用,类似于mysql api)

hashmap和redis的区别

既然redis是一个键值对的存储方式,那么其实使用hashmap是更快,更简单的(因为redis得通过网络访问,还要维护很多数据结构),但是redis有如下特性:

  • 持久化存储
  • 可以扩展成分布式
  • 支持网络访问

其实redis就是在键值对存储的基础之上扩展了功能,要是你业务里用到这些功能,那就直接使用redis,省得自己手搓,反之要是你不用这些功能当然也就没必要使用redis了。

相关推荐
MaAidan5 小时前
让 Agent 接上 YApi、Yuque、数据库、Redis 和日志:我的 MCP 资源绑定设计
数据库·redis·缓存
pikapika~~~5 小时前
Mysql+Redis八股
数据库·redis·mysql
IT规划师11 小时前
Redis 数据类型全解 - Hash 还是 String + JSON?一文终结存储选型之争(三)
redis·.net core·哈希表·.net10
夕除15 小时前
Redis 过期策略
redis·笔记·面试
莫晓燚1 天前
双机部署若依 (RuoYi‑Vue) 传统环境部署---实战
linux·运维·数据库·redis·mysql·nginx·ruoyi
夕除1 天前
redis--resp
redis
莫晓燚1 天前
搭建Redis 主从复制---实战
数据库·redis·缓存