String、list、hash、setredis
Reids相较于memcached优秀的一点是他能够作磁盘持久化,默认是经过RDB,还有一种方式是AOF算法
经过bgsave命令触发,父进程会执行fork建立子进程,子进程建立一个RDB的二进制文件,而后将此副本文件存储在硬盘中缓存
优势:RDB的数据恢复速度是远高于AOF的多线程
缺点:因为RDB文件的生成是命令触发的,并非实时在持久化的,因此每次去生成这个文件的开销会比较大dom
AOF是实时持久化的,redis每次去执行一个修改数据的命令,都会把修改的命令保存到AOF文件中memcached
优势:实时在作持久化操做的性能
缺点:随着时间的推移,AOF文件会变得愈来愈大,须要按期重写来下降文件体积,并且AOF的加载速度更慢spa
哨兵提供监控服务,经过心跳机制,ping节点是否在正常状态下,如果发现ping不通,则会主观的认为该节点故障,当半数的哨兵发现都ping不通时,则会认为该节点宕机,从而运用roft算法(选举机制),选出新的节点做为主节点线程
惰性过时:当访问该key值时,如果已经超过了超时时间,就会清除。如果不访问,即便超时了也不会对其进行处理设计
按期过时:每隔一段时间(Redis默认是100MS)随机抽取一部分key进行检查一次,对已通过期的Key值进行清除处理
Redis是同时使用了这两种策略的惰性过时和按期过时,看似按期过时好,可是存在一个问题是,按期过时如果同一时间下去处理大量过时的key值,那他也只会处理这其中的一部分,剩下的交给惰性处理。为的是避免redis处理大量key值时,影响其的性能
最经常使用的一种策略allkeys-lru:当内存出现不足以容纳新数据写入时,在键空间中,移除最近最少使用的键值
其余策略