缓存的使用场景:
不适合使用缓存的场景:
1、数据类型:都是键值对存储,但redis支持五种数据类型(String、List、Hash、Set、Sorted_Set);memcache仅支持String
2、线程模型:redis是单线程(fork子线程,不严格的单线程);不推荐在redis中存储较大内存,memcache是多线程的。
3、持久机制:redis提供两种持久机制(RDB+AOF);memcache仅用于缓存不支持持久化。
4、客户端:redis的客户端jedis是阻塞I/O,但提供连接池;memcache有很多客户端阻塞I/O,非阻塞I/O都有
5、高可用:redis提供多种集群方案(哨兵Sentinel、cluster);memcache不支持高可用模型。
6、队列支持:redis可实现队列和订阅模式;memcache不支持队列。
7、事务:redis是单线程的,所以单个指令是原子性(线程安全)的,一定程度上保证支持事务(ACID),但不是严格的事务安全(多个指令不保证原子性A);memcache与redis一样,单个指令是线程安全的,但说个指令不是原子性的,另外还不符合事务D:持久性
8、数据淘汰策略:redis采用近似LRU算法(随机算法+LRU算法)淘汰数据;memcache采用LRU算法淘汰数据。
9、内存分配:
原文:https://www.cnblogs.com/wqff-biubiu/p/12462886.html