Redis是一个开源的高性能键值对数据库。可以通过每隔一段时间转储数据到硬盘,或者追加每条命令到日志来持久化。
支持主从异步复制,非阻塞初次同步,网络断开时自动重连并局部重同步
存储结构
Redis是Remote Dictionary Server(远程字典服务器),以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容。
Redis支持的键值数据类型有:
1、字符串类型
2、散列类型
3、列表类型
4、集合类型
5、有序集合类型
Redis数据库中的所有数据都存储在内存中,内存中读写速度快于硬盘。
普通笔记本电脑,Redis可以一秒内读写超过十万个键值。
功能
Redis可以为每个键设置生存时间(Time To Live TTL),生存时间到期后键会自动被删除。
在性能上Redis是单线程模型, Memcached支持多线程,在多核服务器上Memcached性能更高。
Redis作为缓存系统,Redis可以限定数据占用的最大内存空间,在数据达到空间限制后可以按照一定的规则自动淘汰不需要的键。
Redis作为队列,Redis的列表类型键可以用来实现队列(高性能的优先级队列),并且支持阻塞式读取。
Redis 支持"发布/订阅"的消息模式。
持久化
Redis支持两种方式的持久化,一种是RDB,一种是AOF方法,
RDB方式的持久化 通过快照完成,当符合一定条件时Redis会自动将内存中的所有数据进行快照并存储在硬盘上。
AOF方式:默认redis没有开启AOF方式,需要 运行 appendonly yes 命令开启。
开启AOF持久化后每执行一条会更改Redis中的数据的命令,Redis会将该命令写入硬盘中AOF文件。