【redis】redis概述

1、定义

  • Redis(Remote Dictionary Server),即远程字典服务,是一个开源的、内存中的数据结构存储系统。
  • redis是一个key-value存储系统。
  • 和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。
  • 为了保证效率,redis数据都是缓存在内存中。
  • redis可以用作数据库、缓存和消息中间件。
  • Redis使用ANSI C语言编写,支持网络,并提供了多种语言的API。

2、截至今天数据库排名

3、主要特点

  1. 高性能
    • Redis基于内存操作,因此读写速度非常快。
    • 官方测试数据表明,在100k个并发连接下,Redis的读取速度为110000次/s,写入速度为81000次/s(可能根据测试环境和版本有所不同)。
  2. 支持多种数据结构
    • Redis不仅支持简单的字符串类型的数据,还支持列表(list)、集合(set)、散列(hash)和有序集合(sorted set)等多种数据类型。
    • 这些数据类型都支持push/pop、add/remove及取交集、并集和差集等丰富的操作,且这些操作都是原子性的。
  3. 数据持久化:Redis提供了RDB和AOF两种持久化方式,可以将内存中的数据保存到磁盘中,以防止数据丢失。
  4. 主从复制
    • Redis支持主从复制,可以实现数据的备份和读写分离。
    • 一个主服务器可以有多个从服务器,从服务器可以复制主服务器的数据。
  5. 事务支持:Redis支持事务,即一组命令的执行是一个原子操作,在事务中的命令要么全部执行,要么全部不执行。
  6. 发布/订阅功能:Redis提供了发布/订阅功能,可以实现消息的发布和订阅,满足实时消息推送的需求。
  7. Lua脚本支持:Redis支持使用Lua脚本来执行复杂的逻辑,这可以提高处理效率。
  8. 简单易用
    • Redis提供了简单的API,使得开发者可以快速上手。
    • 支持多种语言,包括Java、C/C++、C#、PHP、JavaScript、Perl、Object-C、Python、Ruby、Erlang等。

3、主要用途

  • 缓存:配合关系型数据库做高速缓存
  • 计数器:进行自增自减运算
  • 时效性数据:利用expire过期,例如手机验证码功能
  • 海量数据统计:利用位图,存储用户是否是会员、日活统计、文章已读统计、是否参加过某次活动
  • 会话缓存:使用redis统一存储多台服务器用到的session信息
  • 分布式队列/阻塞队列:通过List双向链表实现读取和阻塞队列
  • 分布式锁: 使用redis自带setnx命令实现分布式锁
  • 热点数据存储:最新文章、最新评论,可以使用redis的list存储,ltrim取出热点数据,删除旧数据
  • 社交系统:通过Set功能实现,交集、并集实现获取共同好友,差集实现好友推荐,文章推荐
  • 排行榜:利用sorted-set的有序性,实现排行榜功能,取top n
  • 延迟队列:利用消费者和生产者模式实现延迟队列
  • 去重复数据:利用Set集合,去除大量重复数据 发布/订阅消息:pub/sub模式
相关推荐
NineData7 小时前
NineData 迁移评估功能正式上线
数据库·dba
雨中飘荡的记忆12 小时前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
NineData13 小时前
数据库迁移总踩坑?用 NineData 迁移评估,提前识别所有兼容性风险
数据库·程序员·云计算
赵渝强老师15 小时前
【赵渝强老师】PostgreSQL中表的碎片
数据库·postgresql
全栈老石19 小时前
拆解低代码引擎核心:元数据驱动的"万能表"架构
数据库·低代码
曲幽21 小时前
FastAPI分布式系统实战:拆解分布式系统中常见问题及解决方案
redis·python·fastapi·web·httpx·lock·asyncio
倔强的石头_2 天前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
jiayou643 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤4 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
爱可生开源社区5 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba