spring-data-redis模块详解

一.背景

     spring-data是spring框架对数据处理的模块,其中包括数据库dao层处理,以及elasticsearch等等都有封装,而本文主要介绍spring-data-redis模块即对redis数据库的数据处理。

二.pom maven依赖

    目前spring官网spring-data-redis最新稳定版本为2.0.1版本,根据官网介绍,目前该版本主要对spring框架3.x版本的实现,所以不支持3.x版本。

    由于spring-test里面依赖了spring-beans,spring-core,spring-context等,所以只需导入spring-test maven依赖

  

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-redis</artifactId>
    <version>2.0.1.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>3.1.2.RELEASE</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.8.2</version>
    <scope>test</scope>
</dependency>                                                                                                                                                                                                      
三.配置
# Redis settings
redis.host=localhost
redis.port=6479
redis.pass=


redis.maxIdle=300
redis.maxActive=600
redis.maxWait=1000
redis.testOnBorrow=true
<context:property-placeholder location="classpath:redis.properties" />

<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
    <property name="maxIdle" value="${redis.maxIdle}" />
    <!--<property name="maxActive" value="${redis.maxActive}" />
    <property name="maxWait" value="${redis.maxWait}" />-->
    <property name="testOnBorrow" value="${redis.testOnBorrow}" />
</bean>

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

<bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
    <property name="connectionFactory"   ref="connectionFactory" />
</bean>
四.代码实现
1.spring-data-redis代码运用
import org.junit.Test;
import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;

import javax.annotation.Resource;

@ContextConfiguration(locations = {"classpath*:applicationContext.xml"})
public class RedisTest extends AbstractJUnit4SpringContextTests {

    @Resource(name = "connectionFactory")
    private JedisConnectionFactory connectionFactory;

    @Resource(name = "redisTemplate")
    private  StringRedisTemplate redisTemplate;

    @Test
    public void testPing(){
        RedisConnection redisConnection = connectionFactory.getConnection();
        String ping = redisConnection.ping();
        System.out.println(ping);
    }

    @Test
    public void testStr(){
        /*redisTemplate.execute(new RedisCallback<Boolean>() {
            @Nullable
            @Override
            public Boolean doInRedis(RedisConnection redisConnection) throws DataAccessException {

                return null;
            }
        });*/

        redisTemplate.execute((RedisConnection con) -> {
            byte[] key = "str".getBytes();
            byte[] value = "hello world".getBytes();
            con.set(key, value);
            return true;
        });


    }

    @Test
    public void testList(){
        redisTemplate.execute((RedisConnection con) -> {
            byte[] key = "list".getBytes();
            byte[] ele1 = "java".getBytes();
            byte[] ele2 = "c".getBytes();
            con.rPush(key, ele1, ele2);
            return true;
        });
    }

}
2.jedis(redis java客户端代码实现)
//redisString进行操作
public static void redisString(Jedis jedis){
    System.out.println(jedis.get("str"));
}
//redisList进行操作
public static void redisList(Jedis jedis){
    List<String> list=jedis.lrange("list", 0, 10);
    for(String ele:list){
        System.out.println(ele);
    }
}
//redisMap进行操作
public static void redisMap(Jedis jedis){
    Set<String> keys=jedis.hkeys("hash");
    List<String> values=jedis.hvals("hash");
    Map<String, String> maps=jedis.hgetAll("hash");
    System.out.println(keys);
    System.out.println(values);
    System.out.println(maps);
}
//redisSet进行操作
public static void redisSet(Jedis jedis){
    Set<String> sets=jedis.smembers("set");
    System.out.println(sets);
}
public static void main(String[] args) {
    Jedis jedis=new Jedis("localhost");
    System.out.println("Connection to server sucessfully");
    //查看服务是否运行
    System.out.println("Server is running: "+jedis.ping());
    System.out.println(jedis.keys("*"));
    redisMap(jedis);
}
详细代码,请移步:https://github.com/followwwind/springproject.git

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值