缓存开源软件使用的原则和建议
来源:互联网 发布:字典里有哪些网络用语 编辑:程序博客网 时间:2024/05/17 15:21
=====================Redis==================
1.Redis is an open source, BSD licensed, advanced key-value cache and store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets,sorted sets, bitmaps and hyperloglogs.
2. 使用场景:
• 对数据结构要求比较丰富(如map、list、sorted sets),memcached不支持的,建议用Redis。
• VALUE的size大于1M的,建议用Redis。
• VALUE的size分布不均匀的,建议用Redis。
• 对数据可靠性要求比较高的,建议用Redis。
3.使用注意事项:
• 不支持smp,一个instance只能使用一个core,合理分配单个实例的大小。
• 不要浪费扩容比较方便,支持配置热刷(不用重启实例能在线扩容)。
• 支持namespace
• 支持主从(全量同步时有可能导致全量镜像,对网络造成压力)
• 支持持久化(fork进程时有短暂服务终止,大内存会体现得很明显,根据其他互联网公司的经验,一般一个instance控制在10G左右比较好)
=====================Memcached==================
1.Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储健/值对的hashmap。其服务器端守护进程(daemon)是用C写的,但客户端可以用任何语言来编写,并用memcached协议与服务器守护进程进行通讯,实现数据缓存。
2.Memcached应用场合
• Memcached不是万能的,也不是使用在所有场合。
• 首先:Memcached是分布式的内存对象缓存,不需要“分布”,不需要“共享的”,或者规模小到只有一台服务器的应用,Memcached不仅不会带来任何好处,反而会拖慢系统效率。(使用Memcached内存并不会得到成百上千的读写速度提高,实际瓶颈在于网络连接,即使网络带宽满负荷,Memcahed服务器进程本身并不占用多少CPU资源)
• Memcached是使用内存来管理数据的,所以是易失的,当服务器重启或者Memcached进程中止数据都会丢失,所以Memcached不能用来持久保存数据。
• 在Memcached中可以保存的Item数量是没有限制的,只要内存足够
3. 用户接入注意事项:
• Memcached不善于处理大数据,一般我们不建议存放超过1M的对象在Memcached。如果有大于1M的数据,需要做优化。
• Memcached是缓存,可靠性差,但性能高。必须有容错机制,在Memcached出现错误时,有相应的补救措施。
• 公司环境下跨网段的访问,会出现较小概率的异常,导致无法get/set/delete数据到Memcached服务器。
- 缓存开源软件使用的原则和建议
- 高效使用缓存的原则
- .NET建议使用的大小写命名原则
- 移动设备开发的7大原则和建议
- 软件测试的目的和原则
- 软件测试的目的和原则
- 软件的易用性测试原则和方法
- 软件测试的原则和经验
- 软件测试的原则和经验
- 软件测试的原则和衡量标准
- 十个常见的缓存使用误区及建议
- 一般软件开发流程和一般软件的测试原则
- 一般软件开发流程和一般软件的测试原则
- MyBatis--查询缓存--内置二级缓存的使用原则
- 对软件的建议
- 软件测试的原则
- 软件测试的原则
- 软件缺陷的原则
- bishe项目总结
- 创建GitHub技术博客全攻略
- SOA
- 数据处理框架:Pig
- SAT阅读填空题真题两道及答案
- 缓存开源软件使用的原则和建议
- Android开发获取手机屏幕大小
- windows下编译及使用libevent
- java提取文档纯文本
- shell脚本启动,停止java应用程序
- Mac终端命令
- 一件事一件事的做好
- java Poi解析07及以上版本Excel单元格中的整数数据出现小数点或者科学技计数的解决办法
- C#正则验证大全 Regex.IsMatch()正则表达式验证