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了。

相关推荐
Rain的Java大神之路11 小时前
如何快速上传10G文件
java·spring boot·redis·后端·mysql·spring cloud·面试
Wang's Blog12 小时前
Java 接入Redis: 通用命令与键管理
java·服务器·redis
Wang's Blog12 小时前
Java 接入Redis: 列表集合与有序集合操作命令
java·服务器·redis
行百里er21 小时前
5 分钟跑起 Redis(Docker 版)
redis·后端·docker
福大大架构师每日一题1 天前
redis 8.10.2发布:安全修复集中落地,事务 ACL、集群总线与模块稳定性全面加固
redis
Pioneer000011 天前
我用 Redis + 网关做多模型 API 路由:缓存命中率 95%+ 的工程实践
人工智能·redis·后端·缓存·性能优化·架构
Hui Baby1 天前
Redis Streams 发布订阅
redis
hweiyu002 天前
Redis命令:MSETNX
redis·缓存
浅念-2 天前
Redis基础详解:单线程模型、String与Hash数据结构
服务器·数据库·redis·sql·mysql·nosql数据库·nosql
张某布响丸辣2 天前
附件下载的安全边界:路径白名单、NAS 哨兵文件与 Redis Lua 一次性令牌
java·redis·redis lua·nas哨兵