memcache和redis mysql_NoSQL数据库memcache和redis区别

在web后台发开面试中,经常会被问道memcache和redis的区别和使用情况。

其中memcache和redis都是基于内存存储的缓存系统,存储形式key--value键值对的形式。

区别:

1、都是k-v模式,但是memcache只是string字符串类型,而redis还可以是hashmap,set ,zset ,list等数据结构。

2、Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。

3、Redis支持master-slave(主—从)模式应用。

4、Redis单个value的最大限制是1GB, memcached只能保存1MB的数据

针对上面的三点不同,主要介绍一下对redis的理解:

1、redis 特殊数据结构的应用场景:

a、hahsmap:可以将用户的会话session,购物车以hashmap存,提高响应的速度;

b、list :可以解决数据一致问题,争抢的资源。将不同用户的对同一数据的操作,放在消息队列中,依次解决。

c、set: 集合交集,例如:求公同的好友。

d、zset(有序集合):计算,可以实现排行榜

e、string :可以缓存页面

2、持久化存储:

redis有二种持久化存储的方法:RDB和AOF

a、RDB(快照方式):快照是默认的持久化方式。这种方式是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb.可以通过配置设置自动做快照持久化的方式。我们可以配置redis在n秒内如果超过m个key修改就自动做快照。

b、AOF:redis将每一个写命令通过write追加到文件中,当redis重启会重新执行这些写命令,在内存中重建。可能os会在内核缓存write做的修改,可能不能立即写入文件,可以修改配置文件redis.conf。缺陷:可能执行了很多无用的命令,(这个问题已经改进了)

3、虚拟内存:

当redis的内存不足时,会将不经常用的k-v交换在虚拟swap中,并将其从内存中删除。当key不存在内存中,则需要在swap中加载相应的数据并返回。

4、数据淘汰策略

redis有很多淘汰策略,其中LRU:表示在设置过期时间的集合中,删除一个最近没用的数据.(memcache也有淘汰机制,这里只能讲了redis)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值