Redis是什么:
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。
Redis用来做什么:
通常局限点来说,Redis也以消息队列的形式存在,作为内嵌的List存在,满足实时的高并发需求。而通常在一个电商类型的数据处理过程中,有关商品,热销,推荐排序的队列,通常存放在Redis之中,期间也包括Storm对于Redis列表的读取和更新。
Redis的优缺点:
优点:
1:性能极高 —— Redis能支持超过 100k+ 每秒的读写频率。
2:丰富的数据类型 —— Redis支持二进制案例的String,Lists,Hashes,Sets及Ordered Sets数据类型操作。
3:原子性 —— Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
4:丰富的特性 —— Redis还支持publish/subscribe,通知,key过期等等特性。
缺点:
是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
Redis的持久化:
1:RDB持久化:
该机制是指在制定的时间间隔内将内存中的数据及快照写入磁盘。
优点:1:只有一份rdb文件,可随时备份。
2:比AOF文件小,加载效率高。
3:只提供fork子进程,不阻塞主进程,IO操作比较少。
2:AOF持久化:
该机制将以日志的形式记录服务器所处理的每一个写操作,在Reids服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。
优点:1:每次改动同步数据安全性好。
2:APPEND方式追加日志,不会对就日志文件产生影响。
3:无持久化:
可以通过配置的方式禁用Redis服务器的持久化功能,这样就可以将Redis视为一个加强版的memcached了。
4:同时应用AOF和RDB: