Redis基础知识:
有五种基本数据类型。
(1)字符串类型(String),应用场景:计数器、共享session缓存
(2)散列类型(hash),应用场景:商品数据
(3)列表类型(list),应用场景:粉丝列表数据、评论列表数据
(4)集合类型(set),应用场景:需要去重的数据
(5)有序集合类型(zet),应用场景:排行榜数据
Redis为什么快
(1)数据存在内存上
(2)数据结构简单
(3)采用单线程,不用考虑多线程环境下的并发操作
(4)使用多路 I/O 复用模型,非阻塞IO
Redis三种集群模式
(1)主从模式
(2)哨兵模式
(3)Cluster集群模式
Redis持久化
持久化简而言之就是将内存中的数据保存到硬盘中的功能,数据恢复时是将硬盘中的数据恢复到内存
持久化是为了让硬盘成为备份,以保证数据库数据的完整。
持久化的方式:
(1)快照 RDB:
redis自动,redis服务挂掉后,最近写入的是不会拷入快照中,所以RDB存在两方面缺点,耗时耗性能、容易丢失数据和不可控
(2)日志 AOF:
每秒策略:每一秒的缓冲区的数据都会刷新到硬盘当中。但是它不像 always 那样,每条数据都会写入硬盘中,如果硬盘发生故障有可能丢失1秒的数据。
Redis主从同步:
主库负责写数据,从库负责读数据(一台主库可以拥有多个从库,一个从库只能归属于一台主库)
同步步骤:
启动一台slave 的时候,他会发送一个psync命令给master ,如果是第一次连接会触发一个全量复制。master就会启动一个线程,生成RDB快照,还会把新的写请求都缓存在内存中,RDB文件生成后,master会将这个RDB发送给slave的,slave拿到之后做的第一件事情就是写进本地的磁盘,然后加载进内存,然后master会把内存里面缓存的那些新命名都发给slave。
Redis过期策略
(1):定时删除
(2):惰性删除,LRU算法,最少使用的删除
Redis和Memcache的区别
(1):Redis支持复杂的数据结构
(2):Redis支持原生的集群模式、Memcache需要依靠客户端来实现往集群中分片写入数据
(3):Redis单核,Memcache支持多核。单核情况下小数据的插入Redis性能比较高,在100K以上的数据中Memcache性能高