1.定义
redis是一个基于内存的 以key-value对保存的非关系型数据库
2.redis的优点
1)存取速度快 ,因数据存在内存中,类似于HashMap,它的优势就是查找和操作的时间复杂度是O(1)(O(1)是指时空复杂度是最低的,无论数据量有多大,所有的操作都能在一次计算后找到目标);
2)支持丰富的数据类型;
3)支持事务,操作都是原子性,所谓的原子性就是操作要么全部执行要么全部不执行;
4)丰富的特性 可用于缓存 消息按key设置过期时间;
2.redis相比memcached的优势
1)memcached只支持简单的字符串类型,redis支持更加丰富的数据类型 String List(列表) Set(集合) SortedSet (有序集合) Hash(哈希)
2)redis读取速度比memcached快
3)redis可持久化其数据
3.redis与memcached的区别
1)存储方式 memcached 存储在内存中,断电后会挂掉,数据不能超过内存大小,redis的数据部分保存在硬盘,这样能保证数据的持久化
2)redis较memcached支持更加丰富的数据类型
3)使用底层模型不同
4.redis的持久化
1)定义
rdb 是redis数据集以快照(半持久化模式)的方式记录redis数据库所有的键值对 在某个时间点写到某个临时文件中,持久化结束后,用临时文件替换上一个持久化文件吗,达到数据恢复的作用
aof 是指所有命令行记录以redis命令请求协议的格式(完全持久化存储)保存为aof文件
2)比较
rdb性能比aof好
aof更新频率高,优先使用aof还原数据
aof比rdb安全性更高
如果aof和rdb都配了,优先加载aof
5.一个redis库能存多少key 各个数据类型的最大存储量
一个库可存2.5亿个key
String 类型的value的一个最大512M
List set 元素个数最多 2^32-1
hash 键值对个数最多2^32-1