文章目录
- 什么是Redis?
- 用Redis的特点?
- 用Redis可以实现哪些功能?
- Redis的常用数据类型有哪些?
- Redis的常用框架有哪些?
- 本篇小结
更多相关内容可查看
什么是Redis?
Redis(Remote DictionaryServer)是一个开源的基于内存的数据存储系统,它既可以作为数据库使用,也可以用作缓存、消息代理和排行榜等用途。Redis以其高性能、支持丰富的数据结构和灵活的应用场景而闻名。
- 数据库 or 缓存(常用)
用Redis的特点?
- 基于内存的存储:Redis将数据存储在内存中,因此访问速度非常快。它也支持数据持久化到磁盘,以防止数据丢失。
- 持久化:Redis支持两种持久化方式,分别是快照(snapshot)和日志(append-only file),可以将内存中的数据持久化到磁盘,以便在重启后恢复数据。
- 复制和高可用性:Redis支持主从复制(master-slave replication),可以将数据复制到多个节点以提高可用性和容错能力。此外,Redis还支持哨兵(Sentinel)和集群(Cluster)模式,用于实现自动故障转移和高可用性。
- 事务:Redis支持事务(transaction)操作,可以将多个命令打包成一个原子操作执行,保证了操作的一致性。
- 发布/订阅:Redis支持发布与订阅(pub/sub)模式,可以用于实现消息队列、实时通信等场景。
- Lua脚本:Redis支持通过Lua脚本执行自定义命令和操作,可以在服务器端执行复杂的逻辑和计算。
用Redis可以实现哪些功能?
注:包含但不限于以下功能(以下为小编自己实现过的内容)
- 使用Redis做热点数据缓存/接口数据缓存
- 使用Redis存储一些业务数据 , 例如 : 验证码 , 用户信息 , 用户行为数据 , 数据计算结果 , 排行榜数据等
- 根使用Redis实现分布式锁 , 解决并发环境下的资源竞争问题
- 码表,字典
- 表数据修改后会进行缓存通知来实现缓存表;
- 可以将常用的库存信息缓存到Redis中,以减少数据库的访问频率,提高系统的响应速度
Redis的常用数据类型有哪些?
- string:最基本的数据类型,二进制安全的字符串,最大512M
- list:按照添加顺序保持顺序的字符串列表
- set:无序的字符串集合,不存在重复的元素
- sorted set:已排序的字符串集合
- hash:key-value对的一种集合
- bitmap(位图):更细化的一种操作,以bit为单位
- hyperlog:基于概率的数据结构
- Geo(Geospatial地理空间索引) : 地理位置类型
注:常用的就是string ,list , set , zset 和hash
Redis的常用框架有哪些?
- Jedis: Java,它支持连接池、分布式、哈希、列表等 Redis 数据结构的操作。
- Lettuce: Java ,Lettuce 支持基于响应式编程模型。
- StackExchange.Redis: C# ,提供了异步操作、连接复用、分区等功能
- redis-py:redis-py,支持连接池、发布订阅、事务等功能。
- ioredis: Node.js,支持异步操作、连接池、管道等特性。
- lettuce-core:l Kotlin/Java 客户端库,支持响应式流 API。
- Redisson:Java ,提供了分布式、面向对象的 API,封装了分布式锁、分布式集合等功能
- Spring Data Redis:Spring Framework 提供的 Redis 抽象框架支持声明式事务、RedisTemplate、注解驱动
- Django-Redis:Django 框架的 Redis 客户端库,提供了对 Redis 数据库的简单、高效的操作接口,可用于缓存、会话存储等场景。
注:了解即可,不建议死记硬背
本篇小结
本篇针对不同人群,对Redis有一个基础了解,整体概念即可,后续会详细说明Redis的相关问题
Redis数据持久化策略
Redis数据过期策略
Redis数据淘汰策略
Redis集群方案
Redis主从同步
Redis分片集群如何存储及读取数据
Redis跟Mysql如何保证数据一致性
Redis的缓存穿透、缓存击穿、缓存雪崩及解决方案
Redis分布式锁实现方式