Spring-data-redis初体验

来源:互联网 发布:linux tar 解压 编辑:程序博客网 时间:2024/06/14 10:44

1.准备Spring-data-redis需要的JAR包

学习Spring-data-redis最烦的莫过于准备工作了,我整理了最新的JAR包集合(可能有一些spring的jar包是多余了)放在如下地址,参考使用:http://pan.baidu.com/s/1hrmKTnA

         其中包含了一个Jedis-XXX.jar这个必须要加进去,这个是java对redis的接口封装

2.编写Spring配置文件

【applicationContext.xml】

 

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:aop="http://www.springframework.org/schema/aop"    xmlns:tx="http://www.springframework.org/schema/tx"    xmlns:context="http://www.springframework.org/schema/context"    xmlns:task="http://www.springframework.org/schema/task"    xmlns:p="http://www.springframework.org/schema/p"    xsi:schemaLocation="    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd    http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.1.xsd">    <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" p:use-pool="true" p:host-name="192.168.106.131" p:port="6379" p:password="centerm"/>  <bean id="stringRedisTemplate"   class="org.springframework.data.redis.core.StringRedisTemplate"   p:connection-factory-ref="jedisConnectionFactory"/>    <!-- 扫描base-package下的文件,并注册bean,同时激活已注册的bean -->    <context:component-scan base-package="com.centerm" /></beans>

    上面这一段中的p:host-name="192.168.106.131" p:port="6379"是标明连接的主机IP和端口号,此外如果Redis服务器有设置访问密码需要加p:password="密码"

**设置主机IP地址可以看出,redis是支持远程访问的,但是直接访问还是会有错误(Connectionrefused(error) NOAUTH Authentication required),需要作如下修改:

    1.  到redis服务端安装目录下修改文件redis.conf(windows下名为redis.windows-service.conf),注释bind 127.0.0.1这一行

    2.  关闭redis服务器防火墙或对6379端口放行

    3.  重启redis服务(linux下: service redisrestart;windows下: net restart redis)

3.编写测试代码

项目目录结构如下:


1.      Redis工具类【TestRedis.java】

package com.centerm;import java.util.Set;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.StringRedisTemplate;import org.springframework.stereotype.Repository;/** * @author Fly * @ClassName TestRedis * @date 2016年3月1日下午1:49:14 */@Repository("testRedis")public class TestRedis {@Autowired  private StringRedisTemplate redisTemplate;  public void addLink(String userId, String url) {    redisTemplate.opsForList().leftPush(userId, url);  }    public void addHash(String userId,String url){  redisTemplate.opsForHash().put("flyHash", userId, url);  }    public void addSet(String userId,String url){  redisTemplate.opsForSet().add(userId, url);  }    public void addString(String userId,String url) {  redisTemplate.opsForValue().append(userId, url);  }    public void addZSet(String userId,String url){  redisTemplate.opsForZSet().add(userId, url + "2", 2);  redisTemplate.opsForZSet().add(userId, url + "1", 1);  redisTemplate.opsForZSet().add(userId, url + "3", 3);    Set<String> values = redisTemplate.opsForZSet().range(userId, 0, -1);  for(String str:values){  System.out.println(str);  }  }}


2.      测试类基类【BaseTest.java】

package com.centerm;import org.junit.runner.RunWith;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations="classpath:applicationContext.xml")public class BaseTest{}


3.      主测试类【TestRedisTest.java】

package com.centerm;import javax.annotation.Resource;import org.junit.Test;import com.centerm.BaseTest;import com.centerm.TestRedis;/** * @author Fly * @ClassName TestRedisTest * @date 2016年3月1日下午1:59:52 */public class TestRedisTest extends BaseTest{@Resource(name="testRedis")private TestRedis testRedis;@Testpublic void testRedisTst(){testRedis.addString(new String("baidu"), new String("http://www.baidu.com"));//testRedis.addLink(new String("baidu"), new String("http://www.baidu.com"));//testRedis.addSet(new String("baidu"), new String("http://www.baidu.com"));//testRedis.addHash(new String("baidu"), new String("http://www.baidu.com"));//testRedis.addZSet(new String("baidu"), new String("http://www.baidu.com"));}}


【注意】applicationContext.xmltest模块也要放置一个

4.测试运行

1.      运行测试类:


2.      运行成功后到redis客户端查看结果


1 0