实际项目开发中,我们经常使用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种数据类型
6、Memcached不支持数据持久化操作,是全内存的数据缓冲系统;
Redis本身是支持内存数据的持久化(采取磁盘存储机制)和数据恢复,而且提供两种主要的持久化策略:RDB快照和AOF日志
7、Memcached本身并不支持分布式,因此只能在客户端通过一致性哈希这样的分布式算法来实现Memcached的分布式存储(集群模式);
Redis(最新版本)支持分布式存储功能(集群模式),
8、Memcached不支持数据的备份;
Redis支持数据的备份,即Master-Slave模式的数据备份
9、Memcache在并发场景下,用cas保证数据一致性
redis事务支持比较弱,只能保证事务中的每个操作连续执行