Redis 缓存使用、与Memcached的差异

一、缓存的使用

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

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

Java代码  

  1. @Repository
  2. public class CachedManager extends BaseDao{
  3. public boolean setCached(String key,Object value,Long expire){
  4. try{
  5. super.redisTemplate.opsForValue().set(key, value, expire, TimeUnit.MINUTES);
  6. return true;
  7. }catch(Exception e){
  8. logger.info("添加缓存失败:{}",e.getMessage());
  9. return false;
  10. }
  11. }
  12. public Object getCached(String key){
  13. try{
  14. return super.redisTemplate.opsForValue().get(key);
  15. }catch(Exception e){
  16. logger.info("获取缓存失败:{}",e.getMessage());
  17. return false;
  18. }
  19. }

添加缓存的时候多了两个参数一个是缓存时间,一个是单位(纳秒到天可选,源码可看)

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

Java代码  

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

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

二、与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 存数据于内存,超出之后,清除失效key、lru机制清除最近最少用的key

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


获取【下载地址】

时间: 2024-10-04 22:57:18

Redis 缓存使用、与Memcached的差异的相关文章

企业做数据缓存是使用Memcached还是选Redis?

企业是使用Memcached还是选Redis? 在构建一款现代且由数据库驱动的Web应用程序并希望使其拥有更为出色的性能表现时,这个问题总会时不时出现.并给每一位开发人员带来困扰.在考虑对应用程序的性能表现进行提升时,缓存机制往往是解决问题的重要起点,而Memcached与Redis则经常被作为初步方案来加以比较. 这两套声名显赫的缓存引擎拥有着诸多相似之处,但它们同样也具备大量显著差异.作为二者当中更年轻也更加灵活的方案,Redis被大部分技术人员视为首选目标--但请别掉以轻心,不容忽视的重要

Redis缓存、MemCached和.Net内部缓存的切换使用

接口文件:IDataCache.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Untitls.Common { public interface IDataCache { /// <summary> /// 获取缓存 /// </summary> /// <typeparam name="T">类型&

windows 环境下.Net使用Redis缓存

Redis简介 Redis是一个开源的,使用C语言编写,面向"键/值"对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景.Redis纯粹为应用而产生,它是一个高性能的key-value数据库,并且提供了多种语言的API 性能测试结果表示SET操作每秒钟可达110000次,GET操作每秒81000次(当然不同的服务器配置性能不同). Redis目前提供五种数据类型:string(字符串),list(链表), Hash(哈希),set(集合)及zset(s

Redis缓存集群方案

由于单台Redis服务器的内存管理能力有限,使用过大内存的Redis又会使得服务器的性能急剧下降,一旦服务器发生故障将会影响更大范围业务,而Redis 3.0 beta1支持的集群功能还不适合生产环境的使用.于是为了获取更好的Redis缓存性能及可用性,很多公司都研发了Redis缓存集群方案.现对NetFlix.Twitter.国内的豌豆荚在缓存集群方面的解决方案进行一个汇总,以供读者参考,具体内容如下: 1.NetFlix对Dynamo的开源通用实现Dynomite Dynomite是NetF

Redis为何要比Memcached的Bigger高

GitHub版本地址: https://github.com/cncounter/translation/blob/master/tiemao_2014/Redis_beats_Memcached/Redis_beats_Memcached.md Redis是新兴的通用存储系统,而Memcached仍有其适用领域 Memcached还是Redis? 在现代高性能Web应用中这一直是个争论不休的话题. 在基于关系型数据库的Web应用需要提高性能时,使用缓存是绝大多数架构师的第一选择,自然,Memc

Linux之搭建redis缓存服务器

Linux之搭建redis缓存服务器(nginx+tomcat+redis+mysql实现session会话共享) 一.redis介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写

redis缓存mysql

Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且

redis 缓存技术与memcache的最大区别

1 什么是redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写

redis缓存服务器(Nginx+Tomcat+redis+MySQL实现session会话共享)

一.redis介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现master-slave(主从)同步. Redis是一个高性能的key-valu

redis缓存队列+MySQL +php任务脚本定时批量入库

原文地址:http://blog.jobbole.com/99567/ 需求背景:有个调用统计日志存储和统计需求,要求存储到mysql中:存储数据高峰能达到日均千万,瓶颈在于直接入库并发太高,可能会把mysql干垮. 问题分析 思考:应用网站架构的衍化过程中,应用最新的框架和工具技术固然是最优选择:但是,如果能在现有的框架的基础上提出简单可依赖的解决方案,未尝不是一种提升自我的尝试.解决: 问题一:要求日志最好入库:但是,直接入库mysql确实扛不住,批量入库没有问题,done.[批量入库和直接