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"));
}