zoukankan      html  css  js  c++  java
  • redis在linux下安装并測试(在spring下调用)

    官网帮助文档例如以下

    Installation

    Download, extract and compile Redis with:

    $ wget http://download.redis.io/releases/redis-3.0.2.tar.gz
    $ tar xzf redis-3.0.2.tar.gz
    $ cd redis-3.0.2
    $ make

    The binaries that are now compiled are available in the src directory. Run Redis with:

    $ src/redis-server
    Or
    $ src/redis-server redis.conf

    You can interact with Redis using the built-in client:

    $ src/redis-cli
    redis> set foo bar
    OK
    redis> get foo
    "bar"

    当然前提是你的linux连网了。而且已经安装gcc等c,c++执行环境

    然后就能够与spring整合了

    maven加上

    <dependency>
    			<groupId>redis.clients</groupId>
    			<artifactId>jedis</artifactId>
    			<version>2.6.2</version>
    			<type>jar</type>
    			<scope>compile</scope>
    		</dependency>

    applicationContext.xml分别加上

    <!-- 属性文件位置 -->
    	<bean id="annotationPropertyConfigurer"
    		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    		<property name="locations">
    			<list>
    				<value>classpath:config/properties/jdbc.properties</value>
    				<value>classpath:config/properties/common.properties</value>
    				<value>classpath:config/properties/log4j.properties</value>
    				<value>classpath:config/properties/redis.properties</value>
    			</list>
    		</property>
    	</bean>


    <!-- 配置redis线程池 -->
    	<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
    		<!-- <property name="maxIdle" value="${redis.pool.maxIdle}" /> <property 
    			name="maxActive" value="${redis.pool.maxActive}" /> <property name="maxWait" 
    			value="${redis.pool.maxWait}" /> -->
    		<property name="testOnBorrow" value="${redis.pool.testOnBorrow}" />
    	</bean>
    	<!-- 连接redis -->
    	<bean id="connectionFactory"
    		class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
    		p:host-name="${redis.host}" p:port="${redis.port}" p:password="${redis.password}"
    		p:pool-config-ref="poolConfig" />
    	<!-- redis调用须要的bean -->
    	<bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
    		<property name="connectionFactory" ref="connectionFactory" />
    	</bean>
    redis.properties配置例如以下

    redis.pool.maxTotal=100
    redis.pool.maxIdle=20
    redis.pool.maxWait=1000
    redis.pool.testOnBorrow=true
    redis.host=10.13.3.101
    redis.port=6379
    redis.password=
    代码例如以下

    package com.kugou.security.service.impl;
    
    import javax.annotation.Resource;
    
    import org.springframework.dao.DataAccessException;
    import org.springframework.data.redis.connection.RedisConnection;
    import org.springframework.data.redis.core.RedisCallback;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.data.redis.serializer.RedisSerializer;
    import org.springframework.stereotype.Service;
    
    import com.kugou.security.entity.SysUser;
    import com.kugou.security.service.SysUserService;
    
    @Service
    public class SysUserServiceimpl implements SysUserService {
    
    	@Resource
    	RedisTemplate<String, SysUser> redisTemplate;
    
    	public boolean addUser(final SysUser sysUser) {
    		boolean result = this.redisTemplate.execute(new RedisCallback<Boolean>() {
    			@Override
    			public Boolean doInRedis(RedisConnection connection) throws DataAccessException {
    				RedisSerializer<String> serializer = redisTemplate.getStringSerializer();
    				byte[] key = serializer.serialize(sysUser.getId());
    				byte[] name = serializer.serialize(sysUser.getNickname());
    				return connection.setNX(key, name);
    			}
    		});
    		return result;
    	}
    
    	public String get(final String userId) {
    		String result = redisTemplate.execute(new RedisCallback<String>() {
    			public String doInRedis(RedisConnection connection) throws DataAccessException {
    				RedisSerializer<String> serializer = redisTemplate.getStringSerializer();
    				byte[] key = serializer.serialize(userId);
    				byte[] value = connection.get(key);
    				if (value == null) {
    					return null;
    				}
    				String name = serializer.deserialize(value);
    				return name;
    			}
    		});
    		return result;
    	}
    }
    

    測试例如以下

    package test.kugou;
    
    import org.junit.runner.RunWith;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    import org.springframework.test.context.transaction.TransactionConfiguration;
    
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations = { "classpath:config/spring/applicationContext.xml" })
    @TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
    public class BaseTest {
      public void testA(){
    	  
      }
    }
    
    package test.kugou.security.dao.service.impl;
    
    import javax.annotation.Resource;
    
    import org.junit.Test;
    
    import com.kugou.security.entity.SysUser;
    import com.kugou.security.service.SysUserService;
    
    import test.kugou.BaseTest;
    
    public class TestSysUserService extends BaseTest {
    	@Resource
    	SysUserService sysUserService;
    	@Test
    	public void testRedis(){
    		SysUser sysUser=new SysUser();
    		sysUser.setId("aa");
    		sysUser.setNickname("test");
    		boolean result=this.sysUserService.addUser(sysUser);
    		System.out.println(result);
    		String nickName=this.sysUserService.get("aa");
    		System.out.println(nickName);
    	}
    
    }
    

     执行成功



  • 相关阅读:
    HDU 2089 不要62
    HDU 5038 Grade(分级)
    FZU 2105 Digits Count(位数计算)
    FZU 2218 Simple String Problem(简单字符串问题)
    FZU 2221 RunningMan(跑男)
    FZU 2216 The Longest Straight(最长直道)
    FZU 2212 Super Mobile Charger(超级充电宝)
    FZU 2219 StarCraft(星际争霸)
    FZU 2213 Common Tangents(公切线)
    FZU 2215 Simple Polynomial Problem(简单多项式问题)
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6727462.html
Copyright © 2011-2022 走看看