实际项目开发中,我们经常使用Redis做缓存,也是当前最流行的Nosql数据库,那么Redis有什么优势呢,
    我们可以和另外一个缓存Memcached做一下比较,让我们在两者比较重来理解Redis的优势和使用。


1、 Memcached是高性能分布式内存缓存服务;
    Redis是一个开源的key-value存储系统,Nosql数据库;

2、 Memcached需要将数据拿到客户端进行修改再set到服务端;
    Redis支持服务器端的数据操作

3、使用简单的key-value存储的话,Memcached的内存利用率更高;
   使用hash结构来做key-value存储,由于其组合式的压缩,Redis的内存利用率会高于Memcached

4、Memcached可以使用多核,Redis只使用单核;
   在存储小数据时,平均每一个核上Redis比Memcached性能更高;
   在100k以上的数据时,Memcached性能要高于Redis

5、Memcached仅支持简单的key-value结构数据;

   Redis支持String(Key-Value,存储对象需要将对象进行序列化)、Hash(HashMap)、List(双向链表、缓冲队列)、Set(hash table)和Sorted Set常用的5种数据类型

为什么使用redis效率高 为什么redis比memcached效率高_为什么使用redis效率高



6、Memcached不支持数据持久化操作,是全内存的数据缓冲系统;


   Redis本身是支持内存数据的持久化(采取磁盘存储机制)和数据恢复,而且提供两种主要的持久化策略:RDB快照和AOF日志



7、Memcached本身并不支持分布式,因此只能在客户端通过一致性哈希这样的分布式算法来实现Memcached的分布式存储(集群模式);


   Redis(最新版本)支持分布式存储功能(集群模式),



8、Memcached不支持数据的备份;


   Redis支持数据的备份,即Master-Slave模式的数据备份



9、Memcache在并发场景下,用cas保证数据一致性


   redis事务支持比较弱,只能保证事务中的每个操作连续执行