ssm整合redis

原创
2017/11/27 14:26
阅读数 381

1.添加redis的jar包

<dependency>
		    <groupId>redis.clients</groupId>
		    <artifactId>jedis</artifactId>
		    <version>2.9.0</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-redis</artifactId>
			<version>1.8.3.RELEASE</version>
		</dependency>

2.添加redis配置文件

<bean id="redisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
		<property name="maxTotal" value="${redis.pool.maxActive}" />
		<property name="maxIdle" value="${redis.pool.maxIdle}" />
		<property name="maxWaitMillis" value="${redis.pool.maxWait}" />
		<property name="testOnBorrow" value="${redis.pool.testOnBorrow}" />
	</bean>

	<bean id="connectionFactory"
		class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
		p:host-name="${redis.host.master.host}" p:port="${redis.host.master.port}"
		p:pool-config-ref="redisPoolConfig"/>

	<bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
		<property name="connectionFactory" ref="connectionFactory" />
	</bean>
redis.pool.maxActive=1024
redis.pool.maxIdle=200
redis.pool.maxWait=1000
redis.pool.testOnBorrow=true
redis.pool.testOnReturn=true
redis.pool.numTestsPerEvictionRun=2048
redis.pool.timeBetweenEvictionRunsMillis=30000
redis.pool.minEvictableIdleTimeMillis=-1
redis.pool.softMinEvictableIdleTimeMillis=10000
redis.pool.testWhileIdle=true
redis.pool.jmxEnabled=true

# Redis settings  
redis.host.master.host=127.0.0.1
redis.host.master.port=6379

3.redis添加、获取

配置为StringRedisTemplate时 : private StringRedisTemplate redisTemplate

	public void set(final String key,final String value){
		redisTemplate.execute( new RedisCallback<Boolean>() {
			@Override
			public Boolean doInRedis(RedisConnection connection) throws DataAccessException {
				((StringRedisConnection)connection).set(key, value);
//				connection.set(redisTemplate.getStringSerializer().serialize(key), 
//				redisTemplate.getStringSerializer().serialize(value));
				return true;
			}
		},false,true);
	}

public String getRedisByKey(final String key){
		return redisTemplate.execute( new RedisCallback<String>() {
			@Override
			public String doInRedis(RedisConnection connection) throws DataAccessException {
				return ((StringRedisConnection)connection).get(key);
				//序列化key
//				byte[] keySer = redisTemplate.getStringSerializer().serialize(key);
//				byte[] value = connection.get(keySer);
//				if( value == null ){
//					return null;
//				}
//				return redisTemplate.getStringSerializer().deserialize(value);
				
			}
		},false,true);
	}

4.redis另一种方式

public void setByOps(String key,String value){
		redisTemplate.opsForValue().set(key, value);
	}
	public List<String> getFromOpsByKey(String key){
		BoundListOperations<String,String> bo = redisTemplate.boundListOps(key);
		final long size = bo.size();
		return bo.range(0, size);
	}

4.main方法测试

public static void main(String[] args) {
		Jedis jedis = new Jedis("localhost");
		 System.out.println("连接成功");
        //查看服务是否运行
        System.out.println("服务正在运行: "+jedis.ping());
        
        jedis.set("sss", "2222");
        
        jedis.lpush("list", "l1");
        jedis.lpush("list", "l2");
     // 获取数据并输出
        Set<String> keys = jedis.keys("*"); 
        Iterator<String> it=keys.iterator() ;   
        while(it.hasNext()){   
            String key = it.next();   
            System.out.println(key);   
        }
        
        List<String> l = jedis.lrange("list", 0, 2);
        for(int i=0; i<l.size(); i++) {
            System.out.println("列表项为: "+l.get(i));
        }
        
        Jedis je = new Jedis("redis.milibx.com");
        je.auth("mili_bxbb_123");
        System.out.println(je.ping());
        je.quit();
	}

5.junit测试

@Autowired
	private RedisService redisService;
	
	@Test
	public void test(){
//		redisService.set("name", "22222");
		redisService.setByOps("age", "11");
		System.out.println("====="+redisService.getRedisByKey("sss"));
//		System.out.println("====="+redisService.getFromOpsByKey("age"));
		
	}

6.  源码

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部