个人理解:就是一个数据库,不过运作在内存中,所以读存比较快,常用于缓存机制.同时也具备持久化功能
官方解释:Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.
数据类型
- String
- Hash
- List
- Set
- Sorted Set
好处
- 因为读写在内存中,因此读写比较快
- 支持的数据类型更多更丰富
- 支持事务操作
- 可以设置元素的活动周期
线程
在处理网络请求时确实是单线程的,可是在进行持久化时依旧会出来一个子进程
String最大长度
持久化
- RDB是指用数据集快照的方式半持久化模式)记录 redis 数据库的所有键值对,在某个时间点将数据写入一个临时文件,
持久化结束后,用这个临时文件替换上次持久化的文件,达到数据恢复
优点
只有一个文件 dump.rdb,方便持久化。容灾性好,一个文件可以保存到安全的磁盘。性能最大化,fork 子进程来完成写操作,让主进程继续处理命令,所以是 IO最大化。使用单独子进程来进行持久化,主进程不会进行任何 IO 操作,保证了 redis的高性能)相对于数据集大时,比 AOF 的启动效率更高
- 缺点
数据安全性低。RDB 是间隔一段时间进行持久化,如果持久化之间 redis 发生故障,会发生数据丢失。
- AOF
是指所有的命令行记录以 redis 命令请求协议的格式完全持久化存储)保存为 aof 文件。
优点
- 数据安全,aof 持久化可以配置 appendfsync 属性,有 always,每进行一次命令操作就记录到 aof 文件中一次。
- 通过 append 模式写文件,即使中途服务器宕机,可以通过 redis-check-aof工具解决数据一致性问题。
- AOF 机制的 rewrite 模式。AOF 文件没被 rewrite 之前(文件过大时会对命令进行合并重写),可以删除其中的某些命令(比如误操作的 flushall))
缺点
- AOF 文件比 RDB 文件大,且恢复速度慢。
- 数据集大的时候,比 rdb 启动效率低。