Redis - Jedis、Memcached缓存 总结

4 篇文章 0 订阅
2 篇文章 0 订阅

Redis作为缓存技术之一,已经被大量使用。现对Redis的代码做一次总结。

1、分布式架构为什么要用缓存?以sesson处理为例,如果一个项目部署了多个节点,部署在多个服务器上。如何做session共享,很显然,大家会想到有数据库存储session会话信息,数据库存在性能瓶颈,所以引入缓存。无论是memcached也好,redis也好均能实现。在微服务架构中,各中心独立,解耦合,如果作为一个管理后台,或者实现单点登录,使用缓存处理会话信息是优先的方案(zookepper也有解决机制)。原理:浏览器发起请求访问,服务器接受,产生seesion信息,如sessionID,将会话信息存储到缓存中,然后返回给浏览器,浏览器用cookie存储sessionID等会话信息。那么同一个域下的请求,都将用同一个seesionID去请求服务器,服务器接收后去缓存中查询是否有相应的会话信息,这样就实现了浏览器-服务器-sesion-redis的一个机制。

具体实现代码参考:http://blog.csdn.net/u013623705/article/details/77187930


2、高并发状态下为什么要用缓存cache?原因在于传统的关系系数据库效率有限,高并发状态下,服务器无法提供良好的数据库服务,存在性能瓶颈。将项目中会出现并发瓶颈的每个点,在原有数据库操作的基础上,增加缓存操作。例如 一个查询操作,先从缓存中取,取到则返回,取不到则去数据库查,数据库的查询结果再入缓存。这样保证了,在数据库中与缓存中都有一份目标数据。提升查询效率,从而提升业务处理效率,提高系统性能,提升用户体验。


3、Jedis 基于 redis.clients pom包,缓存操作过程 即从JedisPool拉取一个连接实例,执行数据存取,使用后归还及释放。 Jedis 是以往开发人员使用的缓存实现方式。

具体实现代码参考:http://blog.csdn.net/u013623705/article/details/77184637


4、RedisTemplate出现后,不再使用Jedis,基于spring-data-redis、redis.clients pom包。缓存操作过程即 从 RedisConnectionFactory 拉取连接,执行数据存取,使用后的归还释放 底层均有实现 无须手动加代码,因而优化了缓存连接引发的性能。

具体实现代码参考:http://blog.csdn.net/u013623705/article/details/77184675

redis事务测试:

        /*****Redis事务**********/
        //由  MULTI 开始一个事务,将多个命令入队到事务中。
        String key = "redis-tra" +
                "nsactional";
        redisTemplate.multi();
        //redis命令1
        redisTemplate.opsForValue().set("redis-transactional","test");
        //由 EXEC 命令触发事务,一并执行事务中的所有命令。
        redisTemplate.exec();
        System.out.println(redisTemplate.opsForValue().get(key));
        //取消事务,放弃执行事务块内的所有命令。
//        redisTemplate.discard();
//        System.out.println(redisTemplate.opsForValue().get(key));
        /*****Redis事务**********/


关于 Redis 、Memcached能缓存技术性能对比 ,可参阅这篇文章,该博主有做相关测试 并作出报告:

http://blog.sina.com.cn/s/blog_6145ed810102vefe.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值