1.Redis和Memcache的区别?1、存储方式 Memecache把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。 Redis有部份存在硬盘上,redis可以持久化其数据 2、数据支持类型 memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型 ,提供list,set,zset,hash等数据结构的存储 3、使用底层模型不同 它们之间底层实现方式 以及与客户端之间通信的应用协议不一样。 Redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。 4、value 值大小不同:Redis 最大可以达到 1gb;memcache 只有 1mb。 5、redis的速度比memcached快很多 6、Redis支持数据的备份,即master-slave模式的数据备份。 2.使用Redis有哪些好处?(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) (2) 支持丰富数据类型,支持string,list,set,sorted set,hash (3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行 (4) 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除 3.什么是redis持久化?rdb和aof的比较?持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失。 比较: 1、aof文件比rdb更新频率高,优先使用aof还原数据。 2、aof比rdb更安全也更大 3、rdb性能比aof好 4、如果两个都配了优先加载AOF 4.Redis最适合的场景?(1)、会话缓存(Session Cache) 最常用的一种使用Redis的情景是会话缓存(session cache)。用Redis缓存会话比其他存储(如Memcached)的优势在于:Redis提供持久化。 除基本的会话token之外,Redis还提供很简便的FPC平台。回到一致性问题,即使重启了Redis实例,因为有磁盘的持久化,用户也不会看到页面加载速度的下降,这是一个极大改进,类似PHP本地FPC。 |
|
来自: 千锋Python学堂 > 《程序员经验分享》