1、先说下Redis的5大基本数据类型
String(字符串)
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个键最大能存储512MB。
Hash(哈希)
Redis hash 是一个键值(key→value)对集合。
Redis hash是一个string类型的field和value的映射表,hash适合用于存储对象。
List(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部或者尾部
Set(集合)
Redis的Set是string类型的无序集合。
Zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
2、Redis为什么快?
1.redis是基于内存的,内存的读写速度非常快。
2.redis是单线程的(绝大多数情况下),省去了很多上下文切换线程的时间。
3.redis的IO模型是异步非阻塞的。
3、如果出错了,数据丢失怎么处理?
redis的持久化可以解决,持久化分为两种RDB(默认) 和AOF
RDB:
redis每隔一段时间就会把内存快照存到硬盘里,它保存了 redis 在某个时间点上的数据集。
AOF:
你可以设置不同的 fsync 策略,默认策略为每秒钟fsync一次,然后将 AOF 文件保存到磁盘中。
一般生产环境中RDB和AOF都是同时开启的:
RDB恢复的速度快,但是数据缺失
AOF数据完整,但是恢复速度慢
一般情况下都会先用RDB恢复一部分数据,然后再用AOF追加缺失的数据。
4、缓存击穿和缓存雪崩,下期再说