`
TableMiao
  • 浏览: 75402 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Redis(五) 缓存使用、与Memcached的差异

阅读更多
Redis() 缓存使用、与Memcached的差异

一、缓存的使用

   同集成spring进行存取操作一致,只是加入key的失效时间而已。

 

   1.创建一个cachedManager  封装存取方法

@Repository
public class CachedManager extends BaseDao{
	
	public boolean setCached(String key,Object value,Long expire){
		try{
			super.redisTemplate.opsForValue().set(key, value, expire, TimeUnit.MINUTES);
			return true;
		}catch(Exception e){
			logger.info("添加缓存失败:{}",e.getMessage());
			return false;
		}
	}
	
	public Object getCached(String key){
		try{
			return super.redisTemplate.opsForValue().get(key);
		}catch(Exception e){
			logger.info("获取缓存失败:{}",e.getMessage());
			return false;
		}
	}
添加缓存的时候多了两个参数一个是缓存时间,一个是单位(纳秒到天可选,源码可看)

2.测试  缓存一分钟的一个key

cached.setCached("cached_test", "你好----", Long.valueOf(1));
		for (int i = 0; i < 15; i++){
			logger.info("获取缓存数据:{},当前时间:{}", cached.getCached("cached_test"),
					new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
							.format(new Date()));
			Thread.currentThread().sleep(5000);
		}

 

结果可见,一分钟之后失效。详见cc-redis-tow  package:cachedtest

 

二、与Memcached比较

1.基本参数

   memcached  默认端口11211  缓存默认失效时间 30天(有种说法是永久、但在30天后可存不可取)  一个key中存储的value值最大为1M,超过1M可拆分成多个key进行操作

   Redis 默认端口6379   缓存默认失效时间不过期(如果取消了默认的持久化方式、数据不被持久化到磁盘上,当内存超出后,redis会使用lru机制把最近最少用的key清除,且写入新数据)  一个key中存储的value值最大为 1g的字节数据

 

2.存储类型

   memcached 类似于一个巨大的hashTable 

   redis 存储类型多样、底层保存字节数组

 

3.数据持久化

   memcached 存数据于内存,超出之后,清除失效keylru机制清除最近最少用的key

   redis 存数据于内存  可持久化到磁盘,重启之后可继续加载使用

 

参考:

http://blog.csdn.net/tonysz126/article/details/8280696/

http://www.tuicool.com/articles/M7fiMv

http://www.blogjava.net/paulwong/archive/2013/09/06/403746.html

 

 

 

 

 

 

 

  • 大小: 163 KB
分享到:
评论

相关推荐

    分布式缓存 Redis + Memcached 经典面试题!.zip

    - Redis 与 Memcached 在缓存淘汰策略上的差异 6. 应用实例: - 使用 Redis 实现计数器服务 - 使用 Memcached 缓存数据库查询结果 - 利用 Redis 的有序集合实现排行榜功能 - 通过 Redis 的发布订阅功能实现...

    memcached完全剖析ehcache memcached redis 缓存技术总结

    6. **使用场景** - 分析每种缓存适合的应用场景,例如Memcached适用于简单快速的键值存储,Ehcache更适合Java应用,而Redis则因其丰富的数据结构和功能更适用于复杂的应用场景。 7. **配置与集成** - 教程可能包括...

    分布式缓存技术-Redis和Memcached选型对比-性能测试

    在众多的缓存解决方案中,Redis和Memcached是最受欢迎的两个选择。本文将深入探讨Redis与Memcached的选型对比,分析它们的性能测试结果,并探讨各自的优缺点。 Redis与Memcached都是基于NoSQL的内存数据结构存储...

    redis 缓存技术学习笔记

    ### Redis缓存技术学习笔记 #### 一、Redis概述 Redis是一个开源的、高性能的键值存储系统。它提供了一种灵活的方式来进行数据管理和存储,适用于多种应用场景,如缓存、消息队列等。与传统的键值存储系统...

    ehcache memcache redis 差异

    本文将深入探讨三种常见的缓存系统:Ehcache、Memcached和Redis,分析它们之间的差异,以便于选择最适合特定业务场景的解决方案。 Ehcache是一款广泛应用于Java环境中的开源分布式缓存系统。它最初设计为本地内存...

    Redis和Memcached的区别详解

    Redis和Memcached是两种常见的内存数据存储系统,它们在数据结构、内存管理、性能等方面存在显著差异。这里我们将深入探讨它们的区别。 首先,Redis提供丰富的数据结构支持,这是它与Memcached最明显的区别。Redis...

    Redis容量及使用规划.docx

    在了解Redis的容量及使用规划之前,我们先来看看Redis与其他存储系统的差异。这有助于我们更好地理解Redis的特性和使用场景。 - **MySQL**: 需要在使用前进行详尽的数据库设计,包括表结构、索引等。它能够利用硬盘...

    Redis学习-实战.docx

    - **存储方式**:Redis 支持数据持久化和主从备份,而 Memcached 只提供内存缓存,无持久化功能。 - **数据结构**:Redis 提供了更为丰富的数据结构支持,适用于复杂的业务逻辑。 基于以上考虑,对于需要持久化、...

    Redis开发笔记.doc

    **Redis**与**Memcached**虽然都属于键值型存储系统,但两者在应用领域有着明显的差异。Redis不仅可以用作缓存,还能作为主数据库来使用。这是因为Redis具备**持久化**的功能,能够将数据保存至磁盘,避免因服务重启...

    60道关于Redis的常见面试题.pdf

    在使用 Redis 缓存时,如何设计缓存的失效策略?LRU、LFU 和 TTL 分别适合什么场景? - **失效策略**: - **LRU**:适合大多数场景,特别是数据访问模式较为规律的情况。 - **LFU**:适用于数据访问频率差异较大...

    分布式数据库面试专题系列:Memcached+Redis+MongoDB.zip

    与Memcached不同,Redis的数据可以持久化到磁盘,以防止数据丢失。Redis还提供了事务、发布/订阅、主从复制、lua脚本等功能,使其在复杂应用中更具优势。面试中,你可能被问及Redis的AOF和RDB两种持久化方式,以及...

    新浪微博redis优化历程

    - **热数据存储**:早期使用memcached(MC)进行热数据缓存。 - **全量数据落地MySQL**:对于全量数据,使用MySQL进行存储。但是随着数据量的增长,MySQL成为了性能瓶颈。 - **问题出现**:2010年左右,GraphMC达到了...

    Linux下Redis安装详解.docx

    项目中需要用集中式可横向扩展的缓存框架,做了一点调研,即便 redis、memcached存在效率上的差异(具体比较参考http://timyang.net/data/mcdb-tt-redis/),但其 实都能满足目前项目的需求;但是redis还是比较风骚...

    memcache、redis、tair性能对比测试报告

    Ehcache作为组件级缓存,其性能受到web服务器和集群方式的影响,不具备与memcache、redis、tair的直接对比性。而MongoDB是文档型数据库,其设计目标与缓存系统不同,不适宜进行性能对比。 测试场景涵盖了单机环境和...

    redis面试题Redis 常见面试题.docx

    #### 二、Redis与Memcached的区别 **2.1 相似之处** - **基于内存的存储**:两者均将数据存储于内存中,因此都能提供快速的访问速度。 - **缓存用途**:通常被用作缓存层以减轻后端数据库的压力。 - **过期策略**...

    Redis面试专题.pdf

    Redis与Memcached的区别: 1. 存储内容差异:Memcached主要用于缓存数据和对象,可以存储图片、视频等二进制数据;而Redis除了支持键值对形式的数据外,还支持更多类型的数据结构,如字符串、哈希、列表、集合、有序...

    memcached.zip

    **Memcached:高效缓存与数据存储解决方案** Memcached是一款高性能、分布式内存对象缓存系统,主要用于加速Web应用,通过将数据...同时,了解其与Redis等其他缓存系统的差异,有助于选择更适合项目需求的解决方案。

Global site tag (gtag.js) - Google Analytics