1.架构方式:c/s 客户端和服务器
存储方式:
)1.memcache存储数据的位置:内存中。
)2.redis可以存储到内存中,可以把数据同步 到硬盘中,达到数据的存储持久化。
存储类型
)1.memcache存储数据类型的格式:键值对。没有行和列的概念
)2.redis:数据存储是,键值对存储,只不过存储的值的类型比较丰富,有五种类型,string(字符串),hash(哈希),list(链表),set(集合),zset(有序集合)
2.redis和memcache比较
)1.Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
)2.Redis支持master-slave(主—从)模式应用。
)3.Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
)4.Redis单个value的最大限制是1GB, memcached只能保存1MB的数据
3.快照持久化
快照是默认的持久化方式。这种方式是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb.可以通过配置设置自动做快照持久化的方式。我们可以配置redis在n秒内如果超过m个key修改就自动做快照。
4.append only file (AOF持久化)
aof比快照方式有更好的持久化性,是由于在使用aof时,redis会将每一个收到的写命令都通过write函数追加到文件中,当redis重启时会通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容。
aof方式
当然由于os会在内核中缓存write做的修改,所以可能不是立即写到磁盘上。这样aof方式的持久化也还是有可能会丢失部分修改。
可以通过配置文件告诉reids我们想要通过fsync函数强制os写入到磁盘的时机
本质:把用户执行的每个“写”指令(添加、修改、删除)都备份到文件中,还原数据的时候就是执行具体指令而已。