关闭

不同版本的Spring与Redis集群配置

标签: redissessionspring集群
2174人阅读 评论(0) 收藏 举报

在之前的工作中配置过Redis集群用来共享session。但是仅仅用一个集群来共享session又有点浪费,于是在之前配置基础上再增加一些PV、UV的统计功能。但是这之中遇到了一个问题,就是关于redis配置和spring开发包版本的冲突问题。有两套方案,记录下来希望对将来的工作有帮助。

方案一:我所使用的spring的版本是4.2.5.RELEASE(其中一定要使用4.0.0及以上版本的spring-web和spring-webmvc开发包)

applicationContext.xml配置如下


	

	
        
        
        
        
        
        
         
     
    
    spring-session专用
    
    
        
      
    
	
	   
			
				
			
	   
	   
	       
	                              
	                
	                               
	            
	       
	   
	
	
	
        
        
    

    
        
        
         
        
             
            	
	             
	                
	                
	                
	            
            
        
     
       
     
         
         
        
         
         
         
        
    
使用的时候注入即可
    @Autowired
    @Qualifier("jedisConnectionFactory")
    private JedisConnectionFactory jedisConnectionFactory;
jedisConnectionFactory bean下面有获取Jedis实例的方法,然后Jedis里面实现了各种对redis集群操作的具体方法

但是这种方法有一个问题,就是在spring低于4版本的时候,编译会抛出异常,创建bean with name redisSentinelConfiguration失败,因为找不到sentinels对应的setter方法。如果项目spring版本无法升级的话,只能另找办法,看到一个帖子,地址是 http://www.cnblogs.com/zr520/p/5062025.html,这种办法可以在公司项目(spring 3.2.4)下面实现,因为这种办法我们在使用redis连接时,直接使用redis的共享连接池。而前者方法是通过sentinel寻找当前的master(配置是master唯一可写,slave只读),所以sentinel配置bean注入很重要。

至于pv uv统计需求,我统计pv用了一个filter,过滤所有web请求,所有请求都算到pv里面,uv我是按照sessionId统计的(因为request.getCookies()返回的cookie数组里面我也不知道算哪个。。菜鸟是我),但是关于uv,我看网上有两种说话,一种是按照ip计算,一种是cookie计算,我觉得都不太合理,比如有的网络使用代理访问,那么共用一个ip,至于cookie,如果不设置生命时长,浏览器重启cookie消亡,再次访问就会导致uv过多统计。因为uv是unique visitor,如果可一,会不会用MAC地址会好一些。。。求教。。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Spring 整合redis集群 实现 以及过程中需要注意的问题点

一,准备工作: 1.首先安装好redis集群,启动并配置集群。 2.SpringMVC环境,看项目或个人需要,可以使SpringMVC的web项目,也可以是只使用SpringBean管理器。 二,着...
  • shukebai
  • shukebai
  • 2017-03-24 20:23
  • 3956

Redis集群与spring的整合

上一篇详细的赘述了Redis的curd操作及集群的搭建。下面我们开始将他整合到我们实际的项目中去。我的项目采用的是标准的ssm框架,ssm框架这里不说,直接开始整合。 首先在maven管理中将我们的j...
  • u013132051
  • u013132051
  • 2016-12-21 12:45
  • 10010

spring+redis整合

本文实现spring+redis缓存服务器的整合。 1、redis安装 (1)、下载 由于本文出于测试目的,因此使用windows的redis版本。从https://github.com/Serv...
  • yxtouch
  • yxtouch
  • 2017-05-01 18:09
  • 1164

jedis,spring-redis-data 整合使用,版本问题异常

jedis,spring-redis-data 整合使用,版本不匹配的时候经常火爆一些异常,例如 1: java.lang.NoClassDefFoundError: org/springframe...
  • zsg88
  • zsg88
  • 2017-06-25 21:03
  • 3423

Spring+SpringMVC做Redis集群(Sentinel模式)

研究Redis也有一段时间了,在前面的Redis系列文章中,介绍了Redis的安装,集群配置,及节点的增加和删除,但是并未实际的使用到项目中,趁这周末时间,参照项目中实际的使用场景,做了一个Redis...
  • kity9420
  • kity9420
  • 2016-12-11 10:35
  • 3734

java代码中操作Redis:单机redis、集群redis(spring+redis集成)

一、准备 关于redis的一些安装,可以查看我的几篇文章自行安装:Redis目录。 一个web项目,我这边一直用的一个github项目是:https://github.com/guba...
  • u010246789
  • u010246789
  • 2016-08-16 14:37
  • 5848

Jedis分片连接池(分布式)

Redis-2.4.15目前没有提供集群的功能,Redis作者在博客中说将在3.0中实现集群机制。目前Redis实现集群的方法主要是采用一致性哈稀分片(Shard),将不同的key分配到不同的redi...
  • lang_man_xing
  • lang_man_xing
  • 2014-08-06 18:40
  • 36254

jedis针对三种redis工作模式、哨兵模式的源码阅读分析

只要是非单机模式,一定要配置JedisPoolConfig,它的源码中是这样写的 import org.apache.commons.pool2.impl.GenericObjectPoolConfi...
  • zhousenshan
  • zhousenshan
  • 2016-07-04 17:28
  • 7944

使用jedis连接单机和集群redis的两种方式

https://my.oschina.net/u/2263956/blog/799016    摘要:  Redis服务器的部署方式可分为单机和集群的方式,使用Jedis的对应访问...
  • haiyang4988
  • haiyang4988
  • 2017-04-22 14:17
  • 2187

spring 结合 redis 正确从jedisConnectionFactory获取Jedis实例

网上流传着这样一种spring结合redis的例子,从jedisConnectionFactory获取Jedis实例。其他部分忽略只看RedisService,这样获取jedis实例存在很多问题。 这...
  • tiantiandjava
  • tiantiandjava
  • 2015-01-20 10:18
  • 37711
    个人资料
    • 访问:5942次
    • 积分:116
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条