Redis和MemCache的区别学习总结

1.MemCache

MemCache是一个高性能,分布式内存对象缓存系统,通过再内存中缓存一个巨大的hash表,他能存储图像,文件,索引,sql语句结果等数据(Mongodb也能存储图像,文件等等),先将数据从数据库提取到内存中,再从内存中读取,因为基于内存,所以读取速度快。

1.1MemCache的特性

1.使用物理内存作为缓存区,数据存储在内存上,可以独立运行在服务器上,不能超过内存大小,每个进程的最大内存为2G。如果想要缓存更多的数据,可以开辟更多的MemCache进程(不同端口)或者使用不互相通信分布式Memcache进行缓存。当Memcache断电挂掉后,数据就没有了,数据不可恢复。
2.使用K-V键值对方式来存储数据,这是一种单索引的结构化数据组织形式,查询的效率高。
3.协议简单:基于文本行的协议,直接通过telnet在Memcache服务器上进程存取数据操作,简单。
4.使用libevent高性能通信(Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库)。
5.内置的内存管理方式:使用stab Allcation进行内存管理,按照既定的内存,将内存切割成特定的长度来存储相应的数据。
6.分布式:使用hash一致性算法,进行分布式存储数据,各个MemCache服务器之间互不通信,各自独立存储数据,不共享人格信息,服务器不具有分布式功能,分布式部署取决于memcache的客户端。
7.缓存策略:LRU(页面置换算法:最近最久未使用算法),在内存用完之后,服务器端会根据LRU策略,计算最近最久没有使用过的数据,将其进行替换。

2.Redis

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。

2.1Redis的特性

1.Redis基于内存存储数据。
2.Redis不仅仅支持简单的是K-V类型数据,同时还支持String,set,list,hash,zset(sorted sets 有序集合)的value类型。
3.redis当物理内存用完时,可以将一些很就没有用到的value交换到磁盘。
4.redis支持数据的持久化,通过快照和AOF日志两种持久化方式。RDB快照的方式,将内存中的数据不断写入磁盘;使用类似MySql的AOF日志方式,记录每次更新的日志。前者性能较高,但是可能会引起一定程度的数据丢失,后者相反。 Redis支持将数据同步到多台从数据库上,这种特性对提高读取性能非常有益。
5.主从结构,可以一主多从,也可以一主一从,主从同步。
6.redis直接构建了VM机制,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。
7.使用多路I/O复用模型,非阻塞I/O。

2.2Redis为什么这么快

1.完全基于内存,绝大部分请求是存粹的内存操作,非常快速。
2.数据结构简单,对数据的操作也简单,Redis中的数据结构是专门进行设计的。
3.采用单线程,避免了不必要的上下文切换和资源竞争,也不存在多进程多线程的切换导致消耗CPU,不用去考虑各种锁的问题,不存在加锁和放锁操作,没有因为可能出先死锁二导致性能消耗。
4.redis直接构建了VM机制,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。
5.使用多路I/O复用模型,非阻塞I/O。

2.3Redis缓存穿透、缓存雪崩、缓存击穿

1缓存穿透

指一直查询一个不存在的数据,由于缓存命不中所以就会去查询数据库,查不到就不会写入缓存,这就导致了这个不存在的数据每次请求都会到数据库中查询,这就造成了缓存穿透。
解决方法:
①将空的对象也缓存起来,并给他设置一个很短的过期时间,最长不超过5分钟。
②采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被这个bitmap拦截掉,从而避免了对底层存储系统的查询压力。

2缓存雪崩

缓存集中在一段时间内失效,发生了大量的缓存穿透,所有的查询都落到数据库上,就会造成缓存雪崩。
解决方法:
尽量让失效的时间点不分布在用一个时间点。

3缓存击穿

就是指一个key非常热点,在不停的抗住大并发,当这个key失效的瞬间,持续大量的大并发就穿透缓存,直接请求到数据库。
解决方法:
可以设置Key永不过期。

3.MemCache和Redis的比较

1.数据结构:Memcache仅能支持简单的K-V形式,Redis支持的数据更多
2.多线程:Memcache支持多线程,Redis支持单线程,CPU利用Memcache利用率更高
3.持久化:Redis支持持久化,Memcache不支持持久化
4.分布式:Redis做主从结构,而Memcache服务器需要通过hash一致化来支撑主从结构
5.虚拟内存:Redis当物理内存使用完时,会将一些很久没有用的内存交换到磁盘,而Memcache采取的LUR策略,将一部分数据刷新掉
6.有持久化需求或者对数据结构和处理有高级要求的应用,选择redis,其他简单的key/value存储,选择memcache

参考博客
链接: [link]https://www.cnblogs.com/JavaBlackHole/p/7726195.html
链接: [link]https://blog.csdn.net/qq_34126805/article/details/81748107

以下是对提供的参考资料的总结,按照要求结构化多个要点分条输出: 4G/5G无线网络优化与网规案例分析: NSA站点下终端掉4G问题:部分用户反馈NSA终端频繁掉4G,主要因终端主动发起SCGfail导致。分析显示,在信号较好的环境下,终端可能因节能、过热保护等原因主动释放连接。解决方案建议终端侧进行分析处理,尝试关闭节电开关等。 RSSI算法识别天馈遮挡:通过计算RSSI平均值及差值识别天馈遮挡,差值大于3dB则认定有遮挡。不同设备分组规则不同,如64T和32T。此方法可有效帮助现场人员识别因环境变化引起的网络问题。 5G 160M组网小区CA不生效:某5G站点开启100M+60M CA功能后,测试发现UE无法正常使用CA功能。问题原因在于CA频点集标识配置错误,修正后测试正常。 5G网络优化与策略: CCE映射方式优化:针对诺基亚站点覆盖农村区域,通过优化CCE资源映射方式(交织、非交织),提升RRC连接建立成功率和无线接通率。非交织方式相比交织方式有显著提升。 5G AAU两扇区组网:与三扇区组网相比,AAU两扇区组网在RSRP、SINR、下载速率和上传速率上表现不同,需根据具体场景选择适合的组网方式。 5G语音解决方案:包括沿用4G语音解决方案、EPS Fallback方案和VoNR方案。不同方案适用于不同的5G组网策略,如NSA和SA,并影响语音连续性和网络覆盖。 4G网络优化与资源利用: 4G室分设备利旧:面对4G网络投资压减与资源需求矛盾,提出利旧多维度调优策略,包括资源整合、统筹调配既有资源,以满足新增需求和提质增效。 宏站RRU设备1托N射灯:针对5G深度覆盖需求,研究使用宏站AAU结合1托N射灯方案,快速便捷地开通5G站点,提升深度覆盖能力。 基站与流程管理: 爱立信LTE基站邻区添加流程:未提供具体内容,但通常涉及邻区规划、参数配置、测试验证等步骤,以确保基站间顺畅切换和覆盖连续性。 网络规划与策略: 新高铁跨海大桥覆盖方案试点:虽未提供详细内容,但可推测涉及高铁跨海大桥区域的4G/5G网络覆盖规划,需考虑信号穿透、移动性管理、网络容量等因素。 总结: 提供的参考资料涵盖了4G/5G无线网络优化、网规案例分析、网络优化策略、资源利用、基站管理等多个方面。 通过具体案例分析,展示了无线网络优化中的常见问题及解决方案,如NSA终端掉4G、RSSI识别天馈遮挡、CA不生效等。 强调了5G网络优化与策略的重要性,包括CCE映射方式优化、5G语音解决方案、AAU扇区组网选择等。 提出了4G网络优化与资源利用的策略,如室分设备利旧、宏站RRU设备1托N射灯等。 基站与流程管理方面,提到了爱立信LTE基站邻区添加流程,但未给出具体细节。 新高铁跨海大桥覆盖方案试点展示了特殊场景下的网络规划需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值