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写入到磁盘的时机
本质:把用户执行的每个“写”指令(添加、修改、删除)都备份到文件中,还原数据的时候就是执行具体指令而已。