1. Memcached 与 Redis 的异同
-
共同点
1.都是基于内存的数据库,一般都用来当作缓存使用
2.都有过期策略
3.两者的性能都非常高
-
异同点
1.Redis 支持更丰富的数据类型,Memcached 只支持最简单的 k/v 数据类型,所有的值均是简单的字符串
2.Redis 支持数据的持久化,而 Memecache 把数据全部存在内存之中,重启之后数据丢失
3.Redis 有灾难恢复机制,因为可以把缓存中的数据持久化到磁盘上
4.Redis 在服务器内存使用完之后,可以将不用的数据放到磁盘上。但 Memcached 在服务器内存使用完之后,就会直接报异常
5.Memcached 没有原生的集群模式,需要依靠客户端来实现往集群中分片写入数据;但 Redis目前是原生支持 cluster 模式的
6.Memcached 是多线程,非阻塞 IO 复用的网络模型;Redis 使用单线程的多路 IO 复用模型
7.Redis 支持发布订阅模型、Lua 脚本、事务等功能,而 Memcached 不支持。并且,Redis 支持更多的编程语言
8.Memcached 过期数据的删除策略只用了惰性删除,而 Redis 同时使用了惰性删除与定期删除
2. Redis为什么这么快?
3. Redis 的数据类型
Redis 支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及 zsetsorted set:有序集合)
实际中我们最为常用的还是 string 类型,不过还有几种高级数据类型我们也需要了解掌握:BloomFilter,RedisSearch,Redis-ML,还有更高级的数据类型,BloomFilter,RedisSearch,Redis-ML
4. 缓存数据的处理流程
缓存的简单处理流程如下:
1. 如果用户请求的数据命中缓存,就直接返回
2. 缓存中不存在的话,查看数据库中是否存在
3. 如果数据库中存在,则更新缓存中的数据
4. 如果数据库中不存在,则返回空数据
5. 一个字符串能存储的最大容量
512 M
6. 为什么要使用缓存
-
高性能
将高频访问的数据放进缓存,保证高频操作可以快速响应,提高系统响应速度和用户体验
-
高并发