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

相关推荐
栗子~~5 小时前
JAVA - 二层缓存设计(本地缓冲+redis缓冲+广播所有本地缓冲失效) demo
java·redis·缓存
Mr. zhihao9 小时前
深入解析redis基本数据结构
数据结构·数据库·redis
柿柿快乐11 小时前
Redis 入门第一课:全局命令、内部编码与单线程模型
redis·学习·缓存·基础教学
Tirzano13 小时前
超大型组和用户缓存redis
redis·缓存·哈希算法
阿维的博客日记13 小时前
zset实现延迟队列
redis·zset
无小道14 小时前
Redis——string类型相关指令
redis·指令·string
码云骑士16 小时前
Redis 入门实战:从 NoSQL 概念到安装与基础操作详解(一)
数据库·redis·缓存
Tirzano17 小时前
批量查询在线成员对应节点redis
数据库·redis·junit
wljt18 小时前
Redis的5种数据类型
数据库·redis·缓存
敖正炀18 小时前
分布式锁与 Redisson 深度:续期、红锁与无锁化
redis